当尝试回答另一个Stackoverflow问题时,我意识到这个简单的C ++ 11代码段隐式阻塞了调用线程:
std::async(std::launch::async, run_async_task)
在我看来,这似乎是规范的C ++ 11异步启动任务而不关心结果的方法。而是一个有明显显式地创建和分离线程(见答案所提到的问题),以实现这一目标。
所以这是我的问题:关于安全性/正确性,是否有任何原因std::future必须阻止a的析构函数?如果get仅阻塞则不足够,否则,如果我对返回值或异常不感兴趣,那简直就是开火而忘记了?
相关分类