Linux 线程id(pthread_self)和ps命令显示的线程id不同

Linux 线程id(pthread_self)和ps命令显示的线程id不同,linux,multithreading,Linux,Multithreading,我有linux单线程多线程用户进程 一) pthread_self给出其中每个线程的线程id 二) 在ps-T中,命令显示线程的线程id 但是这些不匹配。 请任何人都能说出区别 我有一个挂在ps命令中的线程,但必须找到它是哪个线程。有什么建议吗?在pthread\u self的手册页中说明:pthread\u self()返回的线程ID与调用getId(2)返回的内核线程ID不同。您甚至无法确定pthread\u self()返回的线程ID是否是整数或任何基本C类型:“POSIX.1允许实现范围

我有linux单线程多线程用户进程

一) pthread_self给出其中每个线程的线程id

二) 在ps-T中,命令显示线程的线程id

但是这些不匹配。 请任何人都能说出区别


我有一个挂在ps命令中的线程,但必须找到它是哪个线程。有什么建议吗?

在pthread\u self的手册页中说明:pthread\u self()返回的线程ID与调用getId(2)返回的内核线程ID不同。您甚至无法确定
pthread\u self()返回的线程ID是否是整数或任何基本C类型:“POSIX.1允许实现范围内自由选择用于表示线程ID的类型;例如,允许使用算术类型或结构进行表示。“。因此,您甚至不应该真正打印其值。理解的pthread_self和gettid是不同的。如何将ps输出中列出的ID与进程的线程映射?有方法吗?