概念简介
std::async
异步运行一个函数,将返回值保存在std::future
中。
含有2个策略参数:
- launch::deferred 延迟执行,当调用wait()和get()时,任务才会被运行,且不创建线程;
- launch::async : 创建线程并执行任务,默认是此类型;
- 同样的,调用get()方法获取对象时,也是阻塞等待的。
代码示例
使用deferred策略
int Func()
{
std::cout << "Func Thread id = " << std::this_thread::get_id() << std::endl;
return 0;
}
int main()
{
std::cout &l