標準ライブラリヘッダ <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 jthread
class 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:
// types
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;
};
}
クラス 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;
[[nodiscard]] bool joinable() const noexcept;
void join();
void detach();
[[nodiscard]] id get_id() const noexcept;
[[nodiscard]] native_handle_type native_handle();
// stop token handling
[[nodiscard]] stop_source get_stop_source() noexcept;
[[nodiscard]] stop_token get_stop_token() const noexcept;
bool request_stop() noexcept;
// specialized algorithms
friend void swap(jthread& lhs, jthread& rhs) noexcept;
// static members
[[nodiscard]] static unsigned int 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 support
template<class T> struct hash;
template<> struct hash<thread::id>;
}