std::thread - cppreference.com

From cppreference.com

classthread;(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 not be 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(optional*)implementation-defined

[edit]

Member classes

represents the id of a thread
(public member class)

[edit]

Member functions

(constructor)

constructs new thread object
(public member function)

[edit]

(destructor)

destructs the thread object, underlying thread must be joined or detached
(public member function)

[edit]

operator=

moves the thread object
(public member function)

[edit]

Observers

joinable

checks whether the thread is joinable, i.e. potentially running in parallel context
(public member function)

[edit]

get_id

returns the id of the thread
(public member function)

[edit]

native_handle

returns the underlying implementation-defined thread handle
(public member function)

[edit]

hardware_concurrency

[static]

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

[edit]

Operations

join

waits for the thread to finish its execution
(public member function)

[edit]

detach

permits the thread to execute independently from the thread handle
(public member function)

[edit]

swap

swaps two thread objects
(public member function)

[edit]

Non-member functions

See also