This header is part of thethread support library.
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] | |
specializesstd::hash (class template specialization) | ||
Functions | ||
(C++11) | specializes thestd::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 twothread::id objects(function)[edit] | |
serializes athread::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] | |
(C++11) | stops the execution of the current thread until a specified time point (function)[edit] |
#include <compare> namespace std{// class threadclass thread; void swap(thread& x, thread& y)noexcept; // class jthreadclass jthread; // namespace this_threadnamespace 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);}}
namespace std{class thread{public:// class thread::idclass 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;};}
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;bool joinable()constnoexcept;void join();void detach(); id get_id()constnoexcept; native_handle_type native_handle(); // stop token handling stop_source get_stop_source()noexcept; stop_token get_stop_token()constnoexcept;bool request_stop()noexcept; // specialized algorithmsfriendvoid swap(jthread& lhs, jthread& rhs)noexcept; // static membersstaticunsignedint hardware_concurrency()noexcept; private: stop_source ssource;// exposition only};}
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); template<class CharT>struct formatter<thread::id, CharT>; // hash supporttemplate<class T>struct hash;template<>struct hash<thread::id>;}