是否需要 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
。
以下有什么区别:
std::async(my_function);
和
std::async(std::launch::async, my_function);
在这种情况下使用 pilicy std::launch::async 有什么区别? 第一个选项不是异步启动函数吗??
第一个相当于传递launch::async | launch::deferred
,在这种情况下,它是异步启动还是仅仅延迟(在非定时等待函数如get()
时调用)取决于实现在返回的未来被调用)。
想法是,默认情况下,如果创建新线程不会提高性能,则实现可以选择推迟。要强制创建新线程,仅传递 launch::async
。