标准库标头 <thread>

来自cppreference.com
< cpp‎ | header


 
 
标准库头
 

此头文件是线程支持库的一部分。

目录

包含

(C++20)
三路比较运算符支持[编辑]

命名空间

this_thread 提供访问当前执行线程的函数

(C++11)
管理单独的线程
(类)[编辑]
(C++20)
支持自动合并和取消的 std::thread
(类)[编辑]
特化 std::hash
(类模板特化)

函数

特化 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)
使当前线程的执行停止指定的时间段
(函数)[编辑]
使当前线程的执行停止直到指定的时间点
(函数)[编辑]

[编辑]概要

#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>;}
close