【发布时间】:2017-08-14 13:20:13
【问题描述】:
据我所知async 在另一个线程/进程/核心中执行一个函数并且不会阻塞主线程,但总是这样吗?
我有以下代码:
async(launch::async,[]()
{
Sleep(1000);
puts("async");
});
puts("main");
它打印async main,这是否意味着主线程一直等到async完成?
如果我改为以下:
auto f = async(launch::async,[]() // add "auto f = "
{
Sleep(1000);
puts("async");
});
puts("main");
它打印main async。这看起来好像 main 不等待 async 完成。
【问题讨论】:
标签: c++ multithreading asynchronous concurrency