(如何)我可以启动多个线程这样的:没有加入启动多个线程
for (i = 0; i < 10; i++) {
std::thread (myfunction, i, param2, param3);
}
没有加入?
(如何)我可以启动多个线程这样的:没有加入启动多个线程
for (i = 0; i < 10; i++) {
std::thread (myfunction, i, param2, param3);
}
没有加入?
试试这个
for (int i = 0; i < 10; ++i) {
std::thread{myfunction, i, param2, param3}.detach();
}
或者,如果你想以后加入的线程,然后把它们放在一个std::vector
。
std::vector<std::thread> v;
for (int i = 0; i < 10; ++i) {
v.emplace_back(myfunction, i, param2, param3);
}
// Do something else...
for (auto& t : v) {
t.join();
}
是的,试试吧! –
就是这样。加入不会启动线程。它阻塞,直到完成。 – juanchopanza
当我这样,我在Visual Studio中得到一个调试错误... R6010 abort()已被调用:( –