Sha*_*awn 11 c++ linux pthreads
在RH Linux中,每个pthread都映射到pid,可以在htop等工具中监视它.但我怎么能得到线程的pid?getpid()只返回主线程的pid.
Duc*_*uck 25
有两个线程值混淆. pthread_self()将返回POSIX线程id; gettid()将返回OS线程ID.后者是特定于Linux的,并不保证是可移植的,但可能是你真正想要的.
编辑正如PlasmaHH所说,gettid()被称为通过syscall().从syscall()手册页:
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/syscall.h>
#include <sys/types.h>
int
main(int argc, char *argv[])
{
pid_t tid;
tid = syscall(SYS_gettid);
}
Run Code Online (Sandbox Code Playgroud)
可以调用以返回调用线程的ID.
PID也是进程Id,线程有线程Id而不是PID.在同一进程中运行的所有线程将具有相同的PID.
| 归档时间: |
|
| 查看次数: |
49527 次 |
| 最近记录: |