标准库头文件 <thread> (C++11)
来自 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) |
比较两个 thread::id 对象(函数) | |
序列化一个 thread::id 对象(函数模板) | ||
定义在命名空间
std::this_thread 中 | ||
(C++11) |
建议实现重新调度线程执行 (函数) | |
(C++11) |
返回当前线程的线程 ID (函数) | |
(C++11) |
停止当前线程的执行,持续指定的时间 (函数) | |
(C++11) |
停止当前线程的执行,直到指定的时刻 (函数) |
[编辑] 概要
#include <compare> 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); } }
[编辑] 类 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; }; }
[编辑] 类 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 }; }
[编辑] 类 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<class CharT> struct formatter<thread::id, CharT>; // hash support template<class T> struct hash; template<> struct hash<thread::id>; }