在每个时间步骤中,多个工作线程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
答案 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完成工作;那些线程将同时工作