是否需要std::launch::async策略

Is std::launch::async policy needed?

本文关键字:launch 策略 async std 是否      更新时间:2023-10-16

以下内容的区别是什么:

std::async(my_function);

std::async(std::launch::async, my_function);

在这种情况下,使用pilicystd::launch::async有什么区别??第一个选项不是异步启动函数吗??

第一个相当于传递launch::async | launch::deferred,在这种情况下,它是异步启动还是仅延迟启动取决于实现(当在返回的future上调用像get()这样的非定时等待函数时调用)。

其想法是,默认情况下,如果创建新线程不会提高性能,则实现可以选择推迟。若要强制创建新线程,请仅传递launch::async