Chapter 9: Concurrency and Parallelism
Concurrency and parallelism refer to the ability to run code in separate threads of execution.
More specifically, concurrency is the ability to run threads in the background, and parallelism is the ability to run threads simultaneously in separate cores of a processor. The run-time library, along with the host operating system, will choose between concurrent and parallel execution models for a given thread on a given hardware environment.
In a modern multi-tasking operating system, the main()
function already represents a thread of execution. When a new thread is started, it's said to be spawned by an existing thread. A group of threads may be called a swarm.
In the C++ standard library, the std::thread
class provides the basic unit of threaded execution. Other classes build upon thread
to provide locks, mutexes, and other concurrency patterns. Depending on system architecture, execution threads may run concurrently on one processor...