我对 st::async 有一些问题,什么时候在 Main 函数以外的其他函数中使用它,假设我有像流动这样的函数:
void printData()
{
for (size_t i = 0; i < 5; i++)
{
std::cout << "Test Function" << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
}
void runningAsync()
{
auto r = std::async(std::launch::async, test);
}
int main()
{
runningAsync();
std::cout << "Main Function" << std::endl;
}
此代码的输出是:
Test Function
Test Function
Test Function
Test Function
Test Function
Main Function
这不好,主线程等待其他线程结束。
我希望 runningAsync() 函数在其他线程中运行,同时在屏幕上打印主线程中的“Main Function”,这可以通过 std::thread 实现。
这是同时运行此功能的方式(并发)吗?