今天遇到一个坑,折腾了一天才把这个坑填上,情况是这样的: 写了段代码,在main()函数中创建一个分离线程,结果这个线程什么都没干就直接挂掉了,代码长这样: int main() { 创建一个分离线程(): return 0: } 后来百度)了一下,原来在main()函数中写return,会被编译器优化成,也会像exit一样直接杀死所有进程,所以分离出来的线程什么都没干,就随着进程一起挂掉了. 所以多线程编程中,main()函数想退出线程应当使用 pthread_exit(NULL); 补一下p…