std::thread (3) - Linux Manuals

std::thread: std::thread


std::thread - std::thread


Defined in header <thread>
class thread; (since C++11)

The class thread represents a_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 a constructor_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 via std::promise or by modifying shared variables (which may require synchronization, see std::mutex and std::atomic)
std::thread objects may also be in the state that does not represent any thread (after default construction, move from, detach, or join), and a thread of execution may be not associated with any thread objects (after detach).
No two std::thread objects may represent the same thread of execution; std::thread is not CopyConstructible or CopyAssignable, although it is MoveConstructible and MoveAssignable.

Member types

Member type Definition
native_handle_type implementation-defined

Member classes

   represents the id of a thread
id (public member class)

Member functions

                     constructs new thread object
constructor (public member function)
                     destructs the thread object, underlying thread must be joined or detached
destructor (public member function)
                     moves the thread object
operator= (public member function)


                     checks whether the thread is joinable, i.e. potentially running in parallel context
joinable (public member function)
                     returns the id of the thread
get_id (public member function)
                     returns the underlying implementation-defined thread handle
native_handle (public member function)

hardware_concurrency returns the number of concurrent threads supported by the implementation
                     (public static member function)


                     waits for a thread to finish its execution
join (public member function)
                     permits the thread to execute independently from the thread handle
detach (public member function)
                     swaps two thread objects
swap (public member function)

Non-member functions

std::swap(std::thread) specializes the std::swap algorithm
                       (function template)