当前位置: 技术问答>linux和unix
请教:pthread_join( )在等待一个已经退出的线程时为何会导致死锁?
来源: 互联网 发布时间:2015-07-22
本文导语: 在主线程中创建了一个非detached的线程,该线程和另外一台机器通过socket通信,然后在主线程中用pthread_join( )等待该线程退出。调试打印的结果显示该线程在对端的机器异常关闭socket时确实也退出了,而且传递给pthrea...
在主线程中创建了一个非detached的线程,该线程和另外一台机器通过socket通信,然后在主线程中用pthread_join( )等待该线程退出。调试打印的结果显示该线程在对端的机器异常关闭socket时确实也退出了,而且传递给pthread_join的线程id也是正确的,但是主线程却在函数pthread_join处死锁了。请问是什么原因导致的?系统是RedHat kernel 2.4.20-8。
|
gdb 调试看一看
用thread 命令
用thread 命令