当前位置: 技术问答>linux和unix
请问线程编成的问题
来源: 互联网 发布时间:2015-03-30
本文导语: 我用一直使用pthread库在linux和solaris下编写多线程处理程序,也一直没有问题。可是这次却遇到了奇怪的问题,在solaris下偶尔发生,但在linux7.2下面却总是发生,pthread_create建立多个线程处理不同的任务,每建立一个线...
我用一直使用pthread库在linux和solaris下编写多线程处理程序,也一直没有问题。可是这次却遇到了奇怪的问题,在solaris下偶尔发生,但在linux7.2下面却总是发生,pthread_create建立多个线程处理不同的任务,每建立一个线程然后用pthread_detach()将它与主线程剥离。可是现在总是出现线程处理函数不运行的情况,用linux下的top观察,线程的确被系统内核启动了,请问是为什么,应如何避免?
|
不可能吧?有没有可能死锁了?
在以前的实现版本中,不同的线程具有不同的线程ID和PID,即如果你用ps看的话,会看到每个线程有一个PID,由于另外存在一个管理线程,故你可能会多看到一个线程存在。但在最近的版本中,改正了这个不符合POSIX的错误,同一个进程的不同线程都具有同一个进程ID了,即你用ps只能看到一个进程了,每个线程有自己的线程ID。你的线程函数究竟有没有运行,很容易调试出来的啊
在以前的实现版本中,不同的线程具有不同的线程ID和PID,即如果你用ps看的话,会看到每个线程有一个PID,由于另外存在一个管理线程,故你可能会多看到一个线程存在。但在最近的版本中,改正了这个不符合POSIX的错误,同一个进程的不同线程都具有同一个进程ID了,即你用ps只能看到一个进程了,每个线程有自己的线程ID。你的线程函数究竟有没有运行,很容易调试出来的啊
|
top也跟ps一样,只能看到一个进程存在了
|
your codes