ChinaUnix.net
相关文章推荐:

wince 线程ID

有个问题请教下大家: 要定位到一个线程线程id,在程序里用pthread_self()来打印,一般打印出来的是一个很大的值, 而top -H , ptree -p pid,包括gdb到进程的时候,进程里的每个线程的编号却不是程序pthread_self()出来的数据,这个数据比较小。 请问下,在程序里怎么获得线程本身对应ptree -p 等命令出来的编号啊? 求大神们解答。。

by xxfihm_cu - Linux环境编程 - 2013-06-28 19:12:41 阅读(910) 回复(3)

相关讨论
by leolein - C/C++ - 2005-06-06 16:55:55 阅读(4468) 回复(2)

我 的程序的 pid 和 tid 的输出 貌似杂乱无章 第一列,第二列是十进制,第三列是 十六进制 [code] pid 17245 tid -1328485472 (0xb0d0eba0) pid 17245 tid -1338975328 (0xb030dba0) pid 17245 tid -1349465184 (0xaf90cba0) pid 17245 tid -1359955040 (0xaef0bba0) pid 17245 tid -1370444896 ( 0xae50aba0) [/code] 这些线程是依次创建的,他们看起来好像没有什么规律啊 以什么样的格式输出比较...

by yeajchao - C/C++ - 2006-10-11 17:45:05 阅读(4792) 回复(4)

在/usr/include/bits/pthreadtypes.h中看到typedef unsigned long int pthread_t; 可是我创建线程后看到: (gdb) info thread * 1 Thread -1218535296 (LWP 28734) main () at serv.c:314 而且我在代码中打印线程id时,使用 printf("iThreadid:%u\n",flag->iThreadid); 打印出正整数值,编译有警告warning: unsigned int format, pthread_t arg (arg 2) 改成printf("iThreadid:%ld\n",flag->iThreadid); 编译无警告,打印和GDB一...

by zazp - C/C++ - 2006-02-09 09:32:31 阅读(1979) 回复(1)

写了一个程序,多线程,有打印每个线程id的信息,刚才偶尔在两个终端都启动了该进程,意外的发现两个进程中的线程id一摸一样,于是关掉,再重新启动,线程id仍然不变,很奇怪,四个线程,每次都各自保持一个固定的id,也不是连续的: 【线程启动】:[Tid:258,Pid:2884508]启动成功! 【线程启动】:[Tid:515,Pid:2884508]启动成功! 【线程启动】:[Tid:772,Pid:2884508]启动成功! 当前任务池中等待任务数:0 【线程启动】:[Tid:1029...

by zoneg - C/C++ - 2011-11-24 11:37:05 阅读(3209) 回复(4)

在Linux下,线程id是无符号的长整形,输出看是3085208464与3076815760,与进程号的分配完全不同。创建一个线程时是按照什么规则分配线程号的? [ 本帖最后由 TAW 于 2009-1-30 21:42 编辑 ]

by TAW - C/C++ - 2009-01-28 19:53:27 阅读(2386) 回复(1)

在linux2.4版本后,linux使用了NPTL作为自己的线程库,为了兼容POSIX标准,所以在内核task中有两个域tgid和tid,前者是进程id,后者是线程id。在linux上获得线程id的方法,目前我所知的有三种,当然这里的三种是指在用户态的程序中,否则除非自己写的kernel module, 都是调用编号224的系统调用实现的(2.6版本)。 第一种: gettid(), man gettid 可以看到gettid的使用方式。 使用时要先定义:_syscall0(pid_t, gettid) 其中_syscall...

by zqqa - Linux文档专区 - 2008-12-03 14:13:21 阅读(535) 回复(0)

我使用了第二种方法,很方便: #define gettid() syscall(__NR_gettid) 用到的地方 gettid() ================================================================================== 在linux2.4版本后,linux使用了NPTL作为自己的线程库,为了兼容POSIX标准,所以在内核task中有两个域tgid和tid,前者是 进程id,后者是线程id。在linux上获得线程id的方法,目前我所知的有三种,当然这里的三种是指在用户态的程序中,否则除非自己写的...

by blworld - Linux文档专区 - 2008-07-16 15:23:49 阅读(641) 回复(0)

是否只能写个SHELL用PS来得到,是否还有其他方法

by relaxxxxx - C/C++ - 2005-09-23 10:09:50 阅读(846) 回复(1)

请教如何在linux系统中打印线程id 使用的都是pthread库, 平台:Linux test 2.4.21-20.ELsmp #1 SMP Wed Aug 18 20:46:40 EDT 2004 i686 i686 i386 GNU/Linux 我printf("tid=[%d]\n",pthread_self()); 打印出来的是,-1074345040, 我换成%ld,同样, %lx没有负号。 为什么不相,solaris,hp-ux,aix上面一样线程id从1开始,

by yixiao_wang - C/C++ - 2005-09-21 17:34:11 阅读(2845) 回复(0)
by apollolegend - C/C++ - 2004-04-02 08:59:14 阅读(767) 回复(0)