线程之线程标识

就像每个进程有一个进程ID一样,每个线程也有一个线程ID。进程ID在整个系统中是唯一的,但线程ID不同,线程ID只在它所属的进程环境中有效

进程ID,用pid_t数据类型来表示,是一个非负整数。线程ID则用pthread_t数据类型来表示,实现的时候可以用一个结构来代表pthread_t数据类型,所以可移植的操作系统实现不能把它作为整数处理。因此必须使用函数来对两个线程ID进行比较。

#include <pthread.h>
int pthread_equal( pthread_t tid1, pthread_t tid2 );
返回值:若相等则返回非0值,否则返回0

Linux 2.4.22使用无符号长整型表示pthread_t数据类型。Solaris 9把pthread_t数据类型表示为无符号整数。FreeBSD 5.2.1和Mac OS X10.3用一个指向pthread结构的指针来表示pthread_t数据类型。

用结果表示pthread_t数据类型的后果是不能用一种可移植的方式打印该数据类型的值。

线程可以通过调用pthread_self函数获得自身的线程ID。

#include <pthread.h>
pthread_t pthread_self(void);
返回值:调用线程的线程ID

 

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/

原文地址:https://www.cnblogs.com/nufangrensheng/p/3518136.html