你的位置:
问答吧
-> C/C++
-> 问题详情
Linux下,主线程怎么知道子线程是否结束?
主线程用pthread_create建立了子线程,子线程不会自己结束,因此,需要主线程在子线程运行结束之后杀死子线程(比如:用pthread_kill),问题是,怎么做,才能保证子线程已经正常中止了?
开始考虑的是在子线程的最后一句用sem_post,但是,子线程sem_post之后,主线程运行pthread_kill的时侯,并不能保证子线程的入口函数已正常返回啊.........
作者: laiwen68
发布时间: 2010-08-23
比较奇怪啊,什么叫子线程不会自己结束?子线程也是执行一个线程函数,会结束的啊,如果里面是个死循环,就没有你说的正常中止这种概念了。
主线程pthread_create()后,可以用pthread_join()来等待子线程结束。
作者: xy_zhang
发布时间: 2010-08-23
子线程正常返回 它就正常终止了啊。
这是最健康的方式。
作者: macrojj
发布时间: 2010-08-23
引用楼主 laiwen68 的回复:
主线程用pthread_create建立了子线程,子线程不会自己结束,因此,需要主线程在子线程运行结束之后杀死子线程(比如:用pthread_kill),问题是,怎么做,才能保证子线程已经正常中止了?