使用pthread C / C ++在主线程中休眠

时间:2014-04-21 14:51:21

标签: c pthreads

你好我是pthread的新手,试图测试这个程序。

http://www.ibm.com/developerworks/library/l-posix3/

这个程序工作得非常好,但有一件事。主线程中的sleep()是什么? 如果我将它更改为睡眠(2)更短或在此* threadfunc上添加更多任务。

线程在完成所有任务之前完成。 有没有更好的方法等到任务结束?

2 个答案:

答案 0 :(得分:0)

sleep()挂起主线程,因此工作线程暂时完成工作。唤醒主线程后,它会停用工作队列,因此wq.control.active中的threadfunc()为false,无论线程是否完成任务,工作线程都会终止。

答案 1 :(得分:0)

  

有没有更好的方法等到任务结束?

只需使用pthread_join()加入,调用就会阻塞,直到要加入的线程结束。