最近阅读源码时发现了有两种获取线程ID的函数:pthread_self和gettid,前者在Richard的APUE一书中有详尽介绍,但后者函数相对陌生,经过一番查阅后现将这两者在此总结一番。
pthread_self:
pthread_self是POSIX实现的,它返回一个由pthread_t数据类型表示的线程ID,在Linux系统中用无符号整形来表示pthread_t数据类型。
POSIX线程ID的分配和维护是由线程实现决定的,它表示的是同一进程中各个线程的独立标识,所以由pthread_self返回的线程ID仅在其所属的进程上下文中才有意义。另外,由于pthread_t应该被当做不透明的数据(opaque data)类型实现,所以当要比较两个pthread_t时可以调用pthread_equal函数来完成操