是否需要 std::launch::async 政策?

Is std::launch::async policy needed?

以下有什么区别:

std::async(my_function);

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

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

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

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