标准库标头 <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) | 比较两个 thread::id 对象 (函数) | |
序列化 thread::id 对象 (函数模板) | ||
在命名空间 std::this_thread 定义 | ||
(C++11) | 建议实现重新调度各执行线程 (函数) | |
(C++11) | 返回当前线程的线程 id (函数) | |
(C++11) | 使当前线程的执行停止指定的时间段 (函数) | |
(C++11) | 使当前线程的执行停止直到指定的时间点 (函数) |
[编辑]概要
#include <compare> namespace std {// 类 threadclass thread; void swap(thread& x, thread& y)noexcept; // 类 jthreadclass jthread; // 命名空间 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);}}
[编辑]类 std::thread
namespace std {class thread {public:// 类 thread::idclass id;using native_handle_type =/* 由实现定义 */; // 构造/复制/销毁 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; // 成员void swap(thread&)noexcept;bool joinable()constnoexcept;void join();void detach(); id get_id()constnoexcept; native_handle_type native_handle(); // 静态成员staticunsignedint hardware_concurrency()noexcept;};}
[编辑]类 std::jthread
namespace std {class jthread {public:// 类型using id = thread::id;using native_handle_type = thread::native_handle_type; // 构造函数、移动与赋值 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; // 成员void swap(jthread&)noexcept;bool joinable()constnoexcept;void join();void detach(); id get_id()constnoexcept; native_handle_type native_handle(); // 停止记号处理 stop_source get_stop_source()noexcept; stop_token get_stop_token()constnoexcept;bool request_stop()noexcept; // 特化的算法friendvoid swap(jthread& lhs, jthread& rhs)noexcept; // 静态成员staticunsignedint hardware_concurrency()noexcept; private: stop_source ssource;// 仅用于阐释};}
[编辑]类 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>; // 散列支持template<class T>struct hash;template<>struct hash<thread::id>;}