【发布时间】:2021-06-15 00:38:00
【问题描述】:
我正在从 lambda 函数中启动 std::async。
即使使用std::launch::async 策略,任务也会在同一个线程上同步运行,因此会阻塞它。
这是正常的还是我错过了什么?
int main()
{
auto lambda = [&]
{
auto future = std::async(std::launch::async, [&]
{
using namespace std::chrono_literals;
const auto delay = 5000ms;
std::this_thread::sleep_for(delay);
std::cout << "Done okay byeeeeeeee \n";
});
};
lambda();
for (long long i = 0 ; i < 10 ; ++i)
{
std::cout << "Doing stuff in main thread" << std::endl;
}
}
【问题讨论】:
标签: c++ multithreading asynchronous