小编sec*_*pur的帖子

将来可以安全地传递到分离线程吗?

是否将a传递std::futurestd::thread安全操作的独立实例?我知道在下面,std::futureshared_ptr中的状态与共享std::promise。这是一个例子。

int main()
{
    std::promise<void> p;
    std::thread( [f = p.get_future()]() {
        if ( f.wait_for( std::chrono::seconds( 2 ) ) == std::future_status::ready ) 
        {
            return;
        }

        std::terminate();
    } ).detach();

    // wait for some operation

    p.set_value();
}
Run Code Online (Sandbox Code Playgroud)

上面的代码中有一个潜在的错误情况,即在主线程退出之后执行lambda。主线程退出后,共享状态是否仍保留?

c++ multithreading c++11

6
推荐指数
1
解决办法
83
查看次数

标签 统计

c++ ×1

c++11 ×1

multithreading ×1