Linux 2.6.x 下 pthread_t 的转换问题!望大家参与答疑

kubeat 2011-04-20 08:43:01
Hi all:
问题描述:我刚接触这个行业两个月,现在接到测试部的Bug List,其中有一项就是平台Porting的 Cpu高占用率,其中我们的porting 是分多线程(模块)的,现在我想知道是到底是哪个模块(线程)的Cpu占用高,实现有问题,所以Top 查看,但是在这里Top看到的 是主进程Pid,与LWP进程Pid对应的Cpu占用情况, 那么我想从我的代码中去尝试获取到这些线程对应到内核中LWP进程pid,不知道那家有什么见解,帮助?

现在的情况:我创建的线程Id ,Pthread_t类型是unsigned long int 型(Linux 2.6.x),首先有个疑问:1、它是否会做一个类型转换,转换成一个指针指向一片有意义的数据空间,2、还是仅仅是作为一种算法产生的用户级管理线程的一个ID呢?
所以如果是第一种情况,不知通过解析这片数据空间进一步来获取内核中的轻权进程的pid的可行性怎么样?
如果是第二种情况,我该怎么做呢?

如果大家有什么想法欢迎留言,留资料、留链接.~~谢了~
...全文
304 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kubeat 2011-04-21
  • 打赏
  • 举报
回复
问题解决,大家不活跃哦
kubeat 2011-04-20
  • 打赏
  • 举报
回复
没有做过干部。
我也想这么认为只是一个Unsigned long型,因为在其他系统中比如freebsd中pthread_t就是一个结构体,而在Linux 2.6.x下打印0x的话则十分像一个地址,所以我现在查资料也没能查到,也不敢确认是否这个pthread_t能否转换成一个地址而去进一步解析出LWP的pid
望指点、交流、讨论
沭水河畔 2011-04-20
  • 打赏
  • 举报
回复
楼主大学做过学生干部?
对于问题1,应该不必做类型转换。就像file descriptor一样,只是一个整型,用来区分不同的file descriptor,但在系统中肯定有一片数据空间是跟这个整型关联的。
其它就不懂了,mark等高手。

23,116

社区成员

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

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