C++ 多线程与并发及性能优化
1. std::jthread 简介
std::jthread 与 std::thread 非常相似,它是对 C++11 中线程存在问题的改进。其公共接口和 std::thread 类似, std::thread 有的方法 std::jthread 也都有,但有以下关键区别:
- 共享停止状态 :内部至少在逻辑上维护一个共享停止状态,可请求线程函数停止执行。
- 协作取消方法 :
- get_stop_source() :返回与线程共享停止状态关联的 std::stop_source 对象。
- get_stop_token() :返回与线程共享停止状态关联的 std::stop_token 对象。
- request_stop() :通过共享停止状态请求取消线程函数的执行。
- 析构行为 :当线程可连接时,析构函数会先调用 request_stop() 发出停止执行请求,再调用 join() 等待线程完成执行。
创建 std::jthread 对象的方式和 std::thread 类
超级会员免费看
订阅专栏 解锁全文

941

被折叠的 条评论
为什么被折叠?



