如何获得线程的pid

JohnKeats 2007-04-18 09:59:38
在shell下,用ps -efm查看程序的各个线程,可以看到,每个子线程都分配了一个pid。那么,在程序里,我们怎么能获得这个pid呢?或者,有没有办法在shell下查看线程的线程id?就是pthread_create中的tid?

我想解决的是这么个问题:有个线程cpu占用较大,我想检查下具体是哪个线程占用的cpu。

谁有好的建议?谢谢!
...全文
665 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yecheng_110 2007-04-18
  • 打赏
  • 举报
回复
http://bbs.chinaunix.net/viewthread.php?tid=124456
linuxhaha 2007-04-18
  • 打赏
  • 举报
回复
用clone()。返回值就是。
awjx 2007-04-18
  • 打赏
  • 举报
回复

在线程中调用pthread_self()得到线程的ID。
JohnKeats 2007-04-18
  • 打赏
  • 举报
回复
谢谢。不过那里没有真正给出有效的查看方法。
搜索到一个有效的做法是用gdb来查看。
gdb attach 进程id
在gdb里:
info thread
可以看到线程id与LWP id的对应关系。
最后detach,让程序继续。
zhaodm 2007-04-18
  • 打赏
  • 举报
回复
线程id就是pthread_create 函数里的tid
你创建了以后,就得到了

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧