|
|
Defined in header <thread> | ||
class thread; | (since C++11) | |
The classthread
representsa single thread of execution. Threads allow multiple functions to execute concurrently.
Threads begin execution immediately upon construction of the associated thread object (pending any OS scheduling delays), starting at the top-level function provided as aconstructor argument. The return value of the top-level function is ignored and if it terminates by throwing an exception,std::terminate is called. The top-level function may communicate its return value or an exception to the caller viastd::promise or by modifying shared variables (which may require synchronization, seestd::mutex andstd::atomic).
std::thread
objects may also be in the state that does not represent any thread (after default construction, move from,detach, orjoin), and a thread of execution may not be associated with anythread
objects (afterdetach).
No twostd::thread
objects may represent the same thread of execution;std::thread
is notCopyConstructible orCopyAssignable, although it isMoveConstructible andMoveAssignable.
Contents |
Member type | Definition |
native_handle_type (optional*) | implementation-defined[edit] |
represents theid of a thread (public member class)[edit] |
constructs newthread object(public member function)[edit] | |
destructs the thread object, underlying thread must be joined or detached (public member function)[edit] | |
moves the thread object (public member function)[edit] | |
Observers | |
checks whether the thread is joinable, i.e. potentially running in parallel context (public member function)[edit] | |
returns theid of the thread (public member function)[edit] | |
returns the underlying implementation-defined thread handle (public member function)[edit] | |
[static] | returns the number of concurrent threads supported by the implementation (public static member function)[edit] |
Operations | |
waits for the thread to finish its execution (public member function)[edit] | |
permits the thread to execute independently from the thread handle (public member function)[edit] | |
swaps two thread objects (public member function)[edit] |
(C++11) | specializes thestd::swap algorithm (function)[edit] |
(C++20) | std::thread with support for auto-joining and cancellation (class)[edit] |