1

以下有什么区别:

std::async(my_function);

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

在这种情况下使用 pilicy std::launch::async有什么区别?无论如何,第一个选项不会异步启动该功能吗?

4

1 回答 1

3

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

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

于 2015-02-22T15:07:12.293 回答