The Wayback Machine - https://web.archive.org/web/20201101052000/https://en.cppreference.com/w/cpp/header/thread
Namespaces
Variants
Actions

Standard library header <thread>

From cppreference.com
< cpp‎ | header
 
 
 

This header is part of the thread support library.

Contents

Includes

(C++20)
Three-way comparison operator support [edit]

Namespaces

this_thread provide functions that access the current thread of execution

Classes

(C++11)
manages a separate thread
(class)[edit]
(C++20)
std::thread with support for auto-joining and cancellation
(class)[edit]
specializes std::hash
(class template specialization)

Functions

specializes the std::swap algorithm
(function)[edit]
(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(C++20)
compares two thread::id objects
(function)[edit]
serializes a thread::id object
(function template)[edit]
Defined in namespace std::this_thread
(C++11)
suggests that the implementation reschedule execution of threads
(function)[edit]
(C++11)
returns the thread id of the current thread
(function)[edit]
(C++11)
stops the execution of the current thread for a specified time duration
(function)[edit]
stops the execution of the current thread until a specified time point
(function)[edit]

[edit]Synopsis

#include <compare>   namespace std {class thread;   void swap(thread& x, thread& y)noexcept;   // class jthreadclass jthread;   namespace this_thread { thread::id get_id()noexcept;   void yield()noexcept;template<class Clock, class Duration>void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);template<class Rep, class Period>void sleep_for(const chrono::duration<Rep, Period>& rel_time);}}

[edit]Class std::thread

namespace std {class thread {public:// typesclass id;using native_handle_type =/* implementation-defined */;   // construct/copy/destroy thread()noexcept;template<class F, class... Args>explicit thread(F&& f, Args&&... args); ~thread(); thread(const thread&)= delete; thread(thread&&)noexcept; thread& operator=(const thread&)= delete; thread& operator=(thread&&)noexcept;   // membersvoid swap(thread&)noexcept;bool joinable()constnoexcept;void join();void detach(); id get_id()constnoexcept; native_handle_type native_handle();   // static membersstaticunsignedint hardware_concurrency()noexcept;};}

[edit]Class std::jthread

namespace std {class jthread {public:// typesusing id = thread::id;using native_handle_type = thread::native_handle_type;   // constructors, move, and assignment jthread()noexcept;template<class F, class... Args>explicit jthread(F&& f, Args&&... args); ~jthread(); jthread(const jthread&)= delete; jthread(jthread&&)noexcept; jthread& operator=(const jthread&)= delete; jthread& operator=(jthread&&)noexcept;   // membersvoid swap(jthread&)noexcept;[[nodiscard]]bool joinable()constnoexcept;void join();void detach();[[nodiscard]] id get_id()constnoexcept;[[nodiscard]] native_handle_type native_handle();   // stop token handling[[nodiscard]] stop_source get_stop_source()noexcept;[[nodiscard]] stop_token get_stop_token()constnoexcept;bool request_stop()noexcept;   // specialized algorithmsfriendvoid swap(jthread& lhs, jthread& rhs)noexcept;   // static members[[nodiscard]]staticunsignedint hardware_concurrency()noexcept;   private: stop_source ssource;// exposition only};}

[edit]Class std::thread::id

namespace std {class thread::id{public: id()noexcept;};   bool operator==(thread::id x, thread::id y)noexcept; strong_ordering operator<=>(thread::id x, thread::id y)noexcept;   template<class charT, class traits> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& out, thread::id id);   // hash supporttemplate<class T>struct hash;template<>struct hash<thread::id>;}
close