ChinaUnix.net
相关文章推荐:

linux 线程id

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 阅读(601) 回复(0)

相关讨论

我 的程序的 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 阅读(5232) 回复(4)

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

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

我使用了第二种方法,很方便: #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 阅读(738) 回复(0)

请教如何在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 阅读(3134) 回复(0)

linux线程环境下gettid() pthread_self() 两个函数都获得线程id linux使用进程模拟线程,gettid 函数返回实际的进程id pthread_self 函数返回 pthread_create创建线程时的id, 我就有点迷惑, 到底那个是线程id呢,一个线程不能有两个id吧 我测试 pthread_self 函数返回的是一个地址,例如: pid 967--tid 967-- pthread_self b7f5c6c0 请大家答疑解惑了

by tianhailong - C/C++ - 2013-09-05 10:09:27 阅读(30700) 回复(13)

想要达到的效果就是在程序运行之前线程和消息id已经被创建好了。 而不用在程序当中去创建和获取消息key。 itron系统能实现,不知道linux能不能做到? 请大虾指教,不胜感激

by CasperLinux - Linux环境编程 - 2013-07-31 11:13:57 阅读(1023) 回复(2)

还有,怎么取得主线程id呢?谢谢

by panstone - C/C++ - 2007-11-29 13:26:48 阅读(3868) 回复(2)

ARM+linux的开发环境。 有两进程:IEC101、BoardComm。每个进程均包括主进程为子进程,子线程是调用pthread_create函数创建的。 各线程中的打印操作类似如下: int pid = getpid(); int tid = pthread_self(); CSysLog::Info("process id=%d, main thread id=%d", pid, tid); 下面为打印结果: IEC101: process id=1647, main thread id=1073867792 process id=1647, child thread id=1085932816 BoardComm: proces...

by chenaiming2009 - C/C++ - 2011-01-30 15:05:55 阅读(3100) 回复(2)

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

by xxfihm_cu - Linux环境编程 - 2013-06-28 19:12:41 阅读(1043) 回复(3)
by leolein - C/C++ - 2005-06-06 16:55:55 阅读(4907) 回复(2)