pthread_exit如何在完成分配的任务之前阻止线程退出?

时间:2012-01-11 05:22:43

标签: linux multithreading pthreads

pthread_exit放置在return 0;之前的main()确实会阻止线程在完成其分配的任务之前退出。

我希望详细了解的原因

我在线程应该工作的函数中放了一个while循环。 当时的情况不满足,但程序终止了。当我在返回0之前将pthread_exit放在main中时,while循环完成了它的任务。 因此问题。

操作系统:Linux

1 个答案:

答案 0 :(得分:3)

使用return语句从main()返回等同于调用exit() ---它终止进程,而不等待其他线程完成。

调用pthread_exit()只退出调用它的线程(即使该线程是运行main()的线程),因此其他线程将继续运行,直到某个线程调用exit()(或另一个终止进程的函数,例如abort()),或者每个线程都已退出。