关于线程号的一些总结

本文介绍了如何获取线程号,包括pthread_self()和gettid()两种方法,前者仅在进程内有效,后者在系统内唯一。还讲述了如何通过命令行查看进程的所有线程,以及如何获取系统内的所有线程。
摘要由CSDN通过智能技术生成

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。 强调内容

一、线程号的获取

首先,我们要知道一个进程可能包含多个线程,每个线程都有自己的id。获取线程id存在下面两种方法:

1、pthread_t pthread_self(void):
 其中返回值类型为pthread_t,类型的定义如下所示:

typedef unsigned long int pthread_t

  注意,pthread_self获取的线程id只是在该线程所属的进程内有用,进程内部可以通过pthread_self获取的id来区分线程,并且在不同进程内的线程可能存在相同的由pthread_self所获取的id,系统无法用此id来区分线程。

2、pid_t gettid(void):
  返回类型为pid_t,实际上pid_t为int类型。 
  在Linux中进程id类型也为pid_t,所以我们可以看到,在linux 中线程其实是通过进程来实现的。
  通过gettid()获取的id在整个系统内都是可见的,每个线程都具有独一无二的由gettid获取的id。

gettid用法举例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值