当前位置:  技术问答>linux和unix

thread的高级问题?想请教内核高手,所以才贴到这儿?

    来源: 互联网  发布时间:2015-07-03

    本文导语:  大家可以做一个测试,我在RED HAT 8.0 写了一个小程序: #include  #include  void *run(void  *arg) {   sleep(30); } int main() {   pthread_t id;   pthread_create(&id,NULL,run,NULL);   sleep(100); } 运行后,用 ps -ef 查看时只显示一个进程 P...

大家可以做一个测试,我在RED HAT 8.0 写了一个小程序:
#include 
#include 

void *run(void  *arg)
{
  sleep(30);
}
int main()
{
  pthread_t id;
  pthread_create(&id,NULL,run,NULL);
  sleep(100);
}
运行后,用 ps -ef 查看时只显示一个进程
PID   PPID     name
1234  200     a.out
用 ps -efm 查看进程线程时:
PID   PPID    name
1234  200     a.out
1235  1234    a.out 
1236  1235    a.out 

我现在可以说: 1234 是进程ID,1235 是主线程ID,1236是创建的线程ID,运行函数是run.一般来说主线程1235是不会defunct的.因为我们没法处理.但是我的程序就出现了,当运行到三五天.就会出现如下状态:
PID   PPID    name
1234  200     a.out
1235  1234    a.out(defunct)
1236  1       a.out 

现在问题是 1235 号线程是怎么僵死的? 什么原因可能导致?
( 可以通过发送 kill -9 1235 出现这种状态. 但发送kill -9 1234 或 kill -9 1236,a.out 程序都退出.)
谢谢?


|
你的程序有问题,没有用pthread_join(id),默认情况都要用pthread_join

|
用DETACH方式create

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • java命名空间java.lang类thread的类成员方法: thread定义及介绍
  • gcc thread.c -o thread.c -lpthread
  • java命名空间java.lang类thread的类成员方法: max_priority定义及介绍
  • Python中多线程thread与threading的实现方法
  • java命名空间java.lang枚举thread.state的类成员方法: new定义及介绍
  • C#利用System.Threading.Thread.Sleep即时输出信息的详解
  • java命名空间java.lang枚举thread.state的类成员方法: terminated定义及介绍
  • [求助]请问一下关于Thread的问题
  • java命名空间java.lang类thread的类成员方法: getdefaultuncaughtexceptionhandler定义及介绍
  • 请问如何在程序中得到 main()Thread 的 Priority ??
  • java命名空间java.lang类thread的类成员方法: getstate定义及介绍
  • 关于GLib Thread Pool的使用问题
  • java命名空间java.lang枚举thread.state的类成员方法: runnable定义及介绍
  • Java Thread
  • java命名空间java.lang枚举thread.state的类成员方法: timed_waiting定义及介绍
  • 急!为什么我没有thread.h文件?
  • java命名空间java.lang枚举thread.state的类成员方法: waiting定义及介绍
  • SCJP模拟题 about Thread
  • java命名空间java.lang.management类managementfactory的类成员方法: thread_mxbean_name定义及介绍
  • 用kthread_run创建kernel thread, 能不能限制线程的数目?
  • java命名空间java.lang类thread的类成员方法: run定义及介绍
  • Exception in thread "main"


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3