----在线程里调用exit(0)只是结束这个线程,还是结束应用程序??
>>结束整个应用程序,子线程要结束的话 return线程函数。
进程的入口函数中,result=main(); exit(result)直接就关闭应用程序,结束进程了。
所以,无论哪个线程执行exit(),进程都会结束。
----exit与return的区别?
>>http://blog.csdn.net/qq_31833457/article/details/78711684
----多线程情况下,主线程先退出,子线程会被强制退出吗?
>>main函数所在的线程退出时,子线程都会退出。
子线程退出时,不影响其他的线程。(子线程退出,孙线程不受影响)
除了main所在的线程,其他的线程级别都是一样的。
main所在的线程执行pthread_exit,则其他线程不会退出。执行了
pthread_exit后main函数提前退出了,并没有执行默认的exit函数,
其他线程仍旧运行,直到最后一个线程运行结束?这个我也不确定了
详细:http://blog.csdn.net/qq_31833457/article/details/78711742
----exit与pthread_exit
exit(result)退出进程,如果是子进程的话,父进程可以wait(result)
pthread_exit(result)退出线程,线程的创造者可以pthread_join(result)
最新实验结果表明会造成pthread_cleanup_push+pthread_cleanup_pop不鸟return,只理pthread_exit(),以后就死心地用pthread_exit就好。
详细:http://bbs.chinaunix.net/thread-2080486-1-1.html