Speculative execution is an optimization technique in which a computer system executes certain tasks ahead of time, even though they may never be needed. The reason for this process is that if the work is needed at any point, it is already been completed. If not, any changes made are reversed, and their respective results ignored.
This technique is common in concurrent computing, where sequential computational tasks are processed in an overlapping time frame. Common examples of speculative execution include branch prediction in CPUs and optimistic concurrency control in database systems.