我有以下for循环:
for (int i = 0; i < 100; i++) {
someJob();
}
Run Code Online (Sandbox Code Playgroud)
我想只用5个线程运行这个函数,我该怎么办?
我尝试的是使用5个线程创建数组,如果索引等于5以等待所有线程再次使用它,但我确信还有另一种方法可以做到这一点:
std::thread t[THREAD_COUNT];
int j=0;
for (int i = 0; i < 100; i++) {
t[j++] = std::thread(someJob);
if (j == THREAD_COUNT)
{
for (int k = 0; k < THREAD_COUNT; k++)
{
if (t[k].joinable())
t[k].join();
}
j = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?(我不能用boost)
谢谢!