Как я знаю, 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
.