標準ライブラリヘッダ <thread>
提供: cppreference.com
このヘッダはスレッドサポートライブラリの一部です。
インクルード | ||
(C++20) | 三方比較演算子サポート | |
名前空間 | ||
this_thread | 現在のスレッドにアクセスする関数を提供します | |
クラス | ||
(C++11) | 別のスレッドを管理します (クラス) | |
(C++20) | 自動合流とキャンセルをサポートする std::thread (クラス) | |
std::hash の特殊化 (クラステンプレートの特殊化) | ||
関数 | ||
(C++11) | std::swap アルゴリズムの特殊化 (関数) | |
(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20) | 2つの thread::id オブジェクトを比較します (関数) | |
thread::id オブジェクトをシリアライズします (関数テンプレート) | ||
名前空間 std::this_thread で定義 | ||
(C++11) | 処理系にスレッドの切り替えを提案します (関数) | |
(C++11) | 現在のスレッドのスレッド id を返します (関数) | |
(C++11) | 指定された時間、現在のスレッドの実行を停止します (関数) | |
(C++11) | 指定された時刻まで現在のスレッドの実行を停止します (関数) |
[編集]概要
#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);}}
[編集]クラス 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;};}
[編集]クラス 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};}
[編集]クラス 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>;}