小编Jus*_*ASK的帖子

线程池C++

我有以下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)

谢谢!

c++ multithreading

7
推荐指数
1
解决办法
4123
查看次数

标签 统计

c++ ×1

multithreading ×1