Standard library header  (C++11) (original) (raw)

This header is part of the thread support library.

[edit] Synopsis

#include   namespace std { // class thread class thread;   void swap(thread& x, thread& y) noexcept;   // class jthread class jthread;   // namespace this_thread 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: // class thread::id class 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;   // members void swap(thread&) noexcept; bool joinable() const noexcept; void join(); void detach(); id get_id() const noexcept; native_handle_type native_handle();   // static members static unsigned int hardware_concurrency() noexcept; }; }

[edit] Class std::jthread

namespace std { class jthread { public: // types using 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;   // members void swap(jthread&) noexcept; bool joinable() const noexcept; void join(); void detach(); id get_id() const noexcept; native_handle_type native_handle();   // stop token handling stop_source get_stop_source() noexcept; stop_token get_stop_token() const noexcept; bool request_stop() noexcept;   // specialized algorithms friend void swap(jthread& lhs, jthread& rhs) noexcept;   // static members static unsigned int 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);   template struct formatter<thread::id, CharT>;   // hash support template struct hash; template<> struct hashthread::id; }