免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 21075 | 回复: 35
打印 上一主题 下一主题

linux下怎样查看多线程程序的主线程pid? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-09 19:03 |只看该作者 |倒序浏览
我有一个进程,他里面有几个线程。我知道这个进程的名字,现在我想通过进程的名字来查看这个进程的主线程的pid,改怎么办?linux下有什么命令吗?
我用pidof 名字可以查看,但是查看的是该进程的所有线程的pid,现在我只想要主线程的pid。

论坛徽章:
0
2 [报告]
发表于 2011-06-10 09:19 |只看该作者
难道这样一个问题都没人回答上来?

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
3 [报告]
发表于 2011-06-10 10:13 |只看该作者
回复 1# teclimber


    一个进程不论多少线程,对外显示都是同一个pid吧?  倒是有线程id鉴别不同的线程。

论坛徽章:
0
4 [报告]
发表于 2011-06-10 10:46 |只看该作者
回复 3# crazyhadoop


    不对,pid是不同的,在linux中线程的本质是进程(轻量级进程),他们是有不同的pid的。我现在的程序就有6个线程,在ps的时候每个线程都有一个pid的。我就是想找出主线程的pid

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
5 [报告]
发表于 2011-06-10 11:02 |只看该作者
回复 4# teclimber


    咦~原来还真没注意过~你说的是 LWP和NLWP 这貌似是伪pid  不过没看到有多个线程啊,请问下这个步骤啊~~

论坛徽章:
0
6 [报告]
发表于 2011-06-10 11:47 |只看该作者
回复 5# crazyhadoop


    就是ps就会有了,我用pidof查看的时候会有几个id.我就是想找出主线程的id,然后杀死主线程,其余线程也就杀死了,否则我就要每个都杀死一次。

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
7 [报告]
发表于 2011-06-10 11:52 |只看该作者
回复 6# teclimber


    啊,我试了么有啊~主线程等别的线程执行完毕再结束不行吗?   或者你能把程序贴出来瞧瞧吗?

论坛徽章:
0
8 [报告]
发表于 2011-06-10 12:29 |只看该作者
回复 7# crazyhadoop


    不行,我就是要杀死这个进程的。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
9 [报告]
发表于 2011-06-10 13:52 |只看该作者
主线程应该就是进程本身,就是进程的pid,用getpid()就ok了,进程或者线程当中调用getpid()都返回该进程的pid。

看上面的回复不太明白你要做什么,是在控制台查看管理吗?如果是控制台查看的话,ps命令不显示线程啊。。。只显示出进程。。。
或者如果你说的线程的意思是fork()出来的多个子进程?如果是这样,杀死父进程并不代表把所有子进程全杀掉啊。。。晕,楼主解释清楚点哈。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
10 [报告]
发表于 2011-06-10 13:54 |只看该作者
回复  crazyhadoop


    不对,pid是不同的,在linux中线程的本质是进程(轻量级进程),他们是有不同 ...
teclimber 发表于 2011-06-10 10:46



    不同线程的ID是不同的,但是线程ID的类型是pthread_t,跟pid_t是不一样的哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP