Threadpool的同步

时间:2016-03-29 06:34:23

标签: c++ multithreading

在每个时间步骤中,多个工作线程W [1..10]应该空闲,直到它们从主线程发出信号开始工作。做他们的每一项工作,向他们完成的主线发出信号,然后回到他们所处的等待状态。当线程完成他们的工作时,主线程应该在等待。

我试图使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="log"></div> ann std::condition_variable执行此操作,但失败了。没有使用boost或其他高级库的问题的正确方法是什么? 出于性能原因,我想避免在每一步中产生和加入线程。非常感谢。

编辑:

std::mutex

1 个答案:

答案 0 :(得分:1)

类似

std::thread thread1([](){/*do something*/});
std::thread thread2([](){/*do something*/});
std::thread thread3([](){/*do something*/});
thread1.join();
thread2.join();
thread3.join();

主线程将等待线程1..3完成工作;那些线程将同时工作