pthread_self与gettid 2025-06-19

特性 pthread_self() gettid()
作用域 当前进程内唯一 整个系统范围内唯一
标准 POSIX 标准(跨平台) Linux 特有(非 POSIX)
用途 线程库内部管理(如线程同步、属性操作) 内核级线程标识(如系统调用、资源管理)
类型 pthread_t(可能是结构体或整型) pid_t(整型)
获取系统资源 无法直接用于系统调用(如 syscall) 可直接用于系统调用(如 tgkill)

标识符 获取方式 作用域 用途
PID getpid() 进程级(所有线程共享) 标识进程(如 kill(pid, signal) 返回当前进程的 进程 ID(PID),同一进程内的所有线程调用它都会返回相同的值。
TID syscall(SYS_gettid) 线程级(每个线程独立) 标识线程(如 tgkill(pid, tid, signal) 返回当前线程的 线程 ID(TID),每个线程(包括主线程)都有自己独立的 TID。
gettid()与syscall(SYS_gettid)完全等价

总结

场景 使用函数 返回的 ID 类型 作用域
获取进程 ID(所有线程共享) getpid() pid_t(PID) 进程级
获取线程 ID(每个线程独立) gettid() pid_t(TID) 线程级(内核)
POSIX 线程标识(用户态) pthread_self() pthread_t 线程级(用户态)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容