相关疑难解决方法(0)

为什么未来的析构函数从`std :: async`阻塞返回?

当试图回答另一个Stackoverflow问题时,我意识到这个简单的C++ 11片段隐式阻塞了调用线程:

std::async(std::launch::async, run_async_task)
Run Code Online (Sandbox Code Playgroud)

对我来说,这似乎是规范的C++ 11方式异步启动任务而不关心结果.相反,为了实现这一点,人们必须明确地创建和分离一个线程(参见上述问题的答案).

所以这是我的问题:关于安全性/正确性,是否有任何理由std::future必须阻止析构函数?如果它get仅仅阻止它就不够了,否则,如果我对返回值或异常不感兴趣,它只是火而忘记?

c++ multithreading asynchronous std c++11

41
推荐指数
1
解决办法
7726
查看次数

标签 统计

asynchronous ×1

c++ ×1

c++11 ×1

multithreading ×1

std ×1