我有一个场景,我正试图想出最佳的同步方法。我们假定C++ 11中的std :: thread存在,所以不需要担心各种线程库之间的差异等。正在同步工作者线程
场景是这样的。线程a,主线程想要将任务分发给一堆工作线程。然后,在暂时发布最终说明之后,需要等待所有线程完成其工作。我们不想加入他们,只是等待他们完成他们的任务。然后,线程必须分析来自所有线程的收集数据,然后向工作人员发出命令以再次开始该程序。
总之,这些是步骤。
- 线程发送命令x到所有工作线程。
- 线程a等待所有工作人员完成。
- 线程a处理。
- 回到1
,你有什么建议,我用?简单的互斥体?条件变量?两者的结合?将不胜感激关于如何构建同步的尽可能高效的任何提示。
障碍原来是我所需要的。谢谢! – 2013-03-18 10:47:14
很高兴能有所帮助。 – didierc 2013-03-18 11:10:18
@didierc我猜''n'是线程的数量。但总是最好定义你的变量。 – user877329 2014-06-12 09:05:32