std::thread(3)

NAME
std::thread - std::thread

Synopsis
   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 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(not always present) implementation-defined

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

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

Observers
                        checks whether the thread is joinable, i.e. potentially running
   joinable in parallel context
                        (public member function)
   get_id returns the id of the thread
                        (public member function)
   native_handle returns the underlying implementation-defined thread handle
                        (public member function)
   hardware_concurrency returns the number of concurrent threads supported by the
   [static] implementation
                        (public static member function)

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

Non-member functions
   std::swap(std::thread) specializes the std::swap algorithm
   (C++11) (function)

See also
   jthread std::thread with support for auto-joining and cancellation
   (C++20) (class)