ev-stdexec-thread-single-thread-context-001¶
| 字段 | 值 |
|---|---|
| 项目 | NVIDIA/stdexec |
| 固定 commit | 6d7ad689f4d4 |
| 路径 | include/exec/single_thread_context.hpp |
| 行段 | L27-L40 |
| 特性 | std::thread |
| 许可证 | Apache-2.0 |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-11-03 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 std::thread 在构造函数里启动事件循环,并在析构函数里 join
为什么典型¶
线程对象的生命周期被绑定到拥有者:构造启动、析构汇合,调用方无需额外管理。这是 RAII 风格的线程封装,也是 std::thread 最常见的生产用法。
摘录¶
STDEXEC::run_loop loop_;
std::thread thread_;
public:
single_thread_context()
: loop_()
, thread_([this] { loop_.run(); })
{}
~single_thread_context()
{
loop_.finish();
thread_.join();
}
备注¶
生产头文件;线程在成员初始化列表中以 lambda 启动,析构时先通知循环结束再 join,避免 detach 带来的生命周期失控。