跳转至

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 带来的生命周期失控。

查看固定 commit 源码 · 返回证据索引