Standard library header <thread> (C++11)
From cppreference.net
此头文件是 线程支持 库的组成部分。
包含文件 |
||
|
(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)
|
返回当前线程的线程标识符
(函数) |
|
|
(C++11)
|
停止当前线程执行指定的时间长度
(函数) |
|
|
(C++11)
|
停止当前线程执行直到指定的时间点
(函数) |
|
概要
#include <compare> namespace std { // 线程类 class thread; void swap(thread& x, thread& y) noexcept; // 协作式线程类 class jthread; // 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: // 类 thread::id class 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() const noexcept; void join(); void detach(); id get_id() const noexcept; native_handle_type native_handle(); // 静态成员 static unsigned int 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() const noexcept; void join(); void detach(); id get_id() const noexcept; native_handle_type native_handle(); // 停止令牌处理 stop_source get_stop_source() noexcept; stop_token get_stop_token() const noexcept; bool request_stop() noexcept; // 特化算法 friend void swap(jthread& lhs, jthread& rhs) noexcept; // 静态成员 static unsigned int 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>; }