Thread support library
From Cppreference
< cpp
				
																
				
				
								
				| C++ Standard Library | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Thread support library | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Contents | 
[edit] Threads
Threads enable the program to execute across several processor cores.
| Defined in header <thread>  | |
| (C++11) | manages a separate thread (class) | 
| Functions managing the current thread | |
| Defined in namespace this_thread  | |
| (C++11) | hints the implementation to reschedule execution of threads (function) | 
| (C++11) | returns the thread id of the current thread (function) | 
| (C++11) | stops the execution of the current thread for a specified time duration (function) | 
| (C++11) | stops the execution of the current thread until a specified time point (function) | 
[edit] Mutual exclusion
Mutual exclusion algorithms restrict access to a shared resource so that only one thread can access it at a time. This allows to avoid data races and to implement synchronization between threads.
| Defined in header <mutex>  | |
| (C++11) | provides basic mutual exclusion facility (class) | 
| (C++11) | provides mutual exclusion facility which implements locking with a timeout (class) | 
| (C++11) | provides mutual exclusion facility which can be locked recursively by the same thread (class) | 
| (C++11) | provides mutual exclusion facility which can be locked recursively by the same thread and implements locking with a timeout (class) | 
| Generic mutex management | |
| (C++11) | implements strictly scope-based mutex ownership wrapper (class template) | 
| (C++11) | implements movable mutex ownership wrapper (class template) | 
| tag type used to specify locking strategy (class) | |
| tag constants used to specify locking strategy (constant) | |
| Generic locking algorithms | |
| (C++11) | locks specified mutexes/locks, returns false if at least one is unavailable (function template) | 
| (C++11) | locks specified mutexes/locks, blocks if at least one is unavailable (function template) | 
| Call once | |
| (C++11) | helper object to ensure that call_once invokes the function only once (class) | 
| (C++11) | invokes a function only once even if called from multiple threads (function template) | 
[edit] Condition variables
| This section is incomplete | 
| (C++11) | manages threads that wait on a mutex (class) | 
| (C++11) | manages threads that wait on some condition (class) | 
| (C++11) | (function) | 
[edit] Futures
| This section is incomplete | 
| Defined in header <future>  | |
| (C++11) | stores a value for asynchronous retrieval (class template) | 
| (C++11) | packages a function to store its return value for asynchronous retrieval (class template) | 
| (C++11) | waits for a value that is set asynchronously (class template) | 
| (C++11) | waits for a value that is set asynchronously. The internal state is shared among several objects (class template) | 
| (C++11) | provides a facility to launch a function in a new thread and acquire its return value asynchronously (function template) |