【发布时间】:2020-09-12 03:48:54
【问题描述】:
我是多线程初学者,cpp标准多线程库中有一些我不明白的地方:
void func(){
//do something
}
int main(){
std::vector<std::thread> threads;
for(int i=0;i<std::thread::hardware_concurrency();i++)
threads.push_back(func);
for(auto& thread:threads)
thread.join();
//do it again
for(auto& thread:threads)
thread.join();
return 0;
}
然后我的问题来了:第三个 for 循环何时到达?是在所有线程完成其工作后到达还是只需要主线程完成其工作?如果某些线程比其他线程更早完成 func(),即使在其他线程完成第一次调用之前,我如何让它调用 func()? 非常感谢您的帮助。
【问题讨论】:
标签: c++ multithreading