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

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


std::async(std::launch::async, run_async_task)

在我看来,这似乎是规范的C ++ 11异步启动任务而不关心结果的方法。而是一个有明显显式地创建和分离线程(见答案所提到的问题),以实现这一目标。


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


梵蒂冈之花
浏览 389回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP