linux下怎样查看多线程程序的主线程pid?

发布于 2022-10-15 04:44:52 字数 127 浏览 19 评论 0

我有一个进程,他里面有几个线程。我知道这个进程的名字,现在我想通过进程的名字来查看这个进程的主线程的pid,改怎么办?linux下有什么命令吗?
我用pidof 名字可以查看,但是查看的是该进程的所有线程的pid,现在我只想要主线程的pid。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

挖个坑埋了你 2022-10-22 04:44:52

难道这样一个问题都没人回答上来?

度的依靠╰つ 2022-10-22 04:44:52

回复 1# teclimber

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

ゝ杯具 2022-10-22 04:44:52

回复 3# crazyhadoop

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

情魔剑神 2022-10-22 04:44:52

回复 4# teclimber

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

甜柠檬 2022-10-22 04:44:52

回复 5# crazyhadoop

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

妄想挽回 2022-10-22 04:44:52

回复 6# teclimber

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

花想c 2022-10-22 04:44:52

回复 7# crazyhadoop

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

世界等同你 2022-10-22 04:44:52

主线程应该就是进程本身,就是进程的pid,用getpid()就ok了,进程或者线程当中调用getpid()都返回该进程的pid。

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

因为看清所以看轻 2022-10-22 04:44:52

回复  crazyhadoop

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

    不同线程的ID是不同的,但是线程ID的类型是pthread_t,跟pid_t是不一样的哈

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文