我们可以创建空线程对象,并在以后分配工作。
如果我们将线程对象分配给另一个活动joinable线程, std::terminate则将在替换线程之前自动调用该线程对象。
#include <thread> void foo() { std::this_thread::sleep_for(std::chrono::seconds(3)); } //创建100个不执行任何操作的线程对象 std::thread executors[100]; // 一些代码 // 我现在想创建一些线程 for (int i = 0;i < 100;i++) { // 如果此对象未分配线程 if (!executors[i].joinable()) executors[i] = std::thread(foo); }