(如何)我可以啓動多個線程這樣的:沒有加入啓動多個線程
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()已被調用:( –