有什么方法可以让主线程等待所有工作线程完成?

时间:2017-03-26 16:00:57

标签: c++ pthreads

我知道使用pthreads的标准方法是使用pthread_join(),但有什么好的选择呢?我目前正在使用sleep()来强制主线程等待。这是不好的做法吗?

1 个答案:

答案 0 :(得分:2)

使用睡眠是不好的做法。

简单示例:使用sleep时,主线程会休眠一段时间,如果线程在超时之前完成,则无法控制。因此,您的处理似乎需要花费更多时间才能满足用户的需求。另一方面,如果睡眠结束,你必须确保线程实际完成了它的工作,所以你必须向主线程发出信号。

使用pthread_join(),您不会遇到这些问题。