你好我是pthread的新手,试图测试这个程序。
http://www.ibm.com/developerworks/library/l-posix3/
这个程序工作得非常好,但有一件事。主线程中的sleep()是什么? 如果我将它更改为睡眠(2)更短或在此* threadfunc上添加更多任务。
线程在完成所有任务之前完成。 有没有更好的方法等到任务结束?
答案 0 :(得分:0)
sleep()
挂起主线程,因此工作线程暂时完成工作。唤醒主线程后,它会停用工作队列,因此wq.control.active
中的threadfunc()
为false,无论线程是否完成任务,工作线程都会终止。
答案 1 :(得分:0)
有没有更好的方法等到任务结束?
只需使用pthread_join()
加入,调用就会阻塞,直到要加入的线程结束。