为啥查某个进程的线程,查出来的所有线程的pid不一样啊
在linux下用 top -H -p <pid> 查询某个进程的线程
按理说,都是某个进程下的线程, 应该进程id PID一样啊,但实际却都不一样
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在linux下用 top -H -p <pid> 查询某个进程的线程
按理说,都是某个进程下的线程, 应该进程id PID一样啊,但实际却都不一样
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
楼上说的linux线程和进程是一样的,这个说法是错误的。
看了楼主的问题,感觉楼主是被PID给弄混了,线程进程都会有自己的ID,这个ID就叫做PID,PID是不特指进程ID,线程ID也可以叫做PID。
引用原文
关于线程继承关系图如下:
在这里你可以清晰的看到,创建一个新的进程会给一个新的PID和TGID,并且2个值相同,
当创建一个新的线程的时候,会给你一个新的PID,并且TGID和之前开始的进程一致。
楼主按下H,切换到进程视图,会发现只剩下一个了
建议建议楼主不要被名字PID给迷惑,一个东西在不同视角是不一样的。
建议楼主用HTOP,清晰方便,高效,还带命令行显示图。
另外附上
Linux通过进程查看线程的方法 1).
htop
按t(显示进程线程嵌套关系)和H(显示线程) ,然后F4过滤进程名。2).ps -eLf | grep java
(快照,带线程命令,e是显示全部进程,L是显示线程,f全格式输出) 3).pstree -p <pid>
(显示进程树,不加pid显示所有) 4).top -Hp <pid>
(实时) 5).ps -T -p <pid>
(快照) 推荐程度按数字从小到大。希望能被采纳!
pthread库里的每一个线程都对应一个内核线程,都是有单独的pid。
比如查看多线程应用MySQL的线程:
可见线程的PID都是一样的,其中NLWP表示线程组中线程的个数,主线程的PID号等于自身的线程编号LWP.
top里看到的线程PID其实是ps里的线程编号LWP.
其实对内核而言,进程和线程是一样的
对Linux来说,线程就是进程。所有会出现所有的父进程都是一样的。但是在window中就不一样啦,线程就是线程