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
A condition variable is a synchronization primitive which implements a list of threads that are waiting until another thread notifies one or all of the waiting threads that they may proceed, until a timeout expires, or until a spurious wakeup occurs. A condition variable is always associated with a mutex.
(C++11)
|
provides a condition variable assocaited with std::unique_lock (class) |
(C++11)
|
provides a condition varibale associated with any lock type (class) |
(C++11)
|
schedules a call to notify_all to be invoked when this thread exits (function) |
(C++11)
|
lists the possible results of timed waits on condition variables (class) |
[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) |