linux 线程tid,linux中线程的pid,线程的tid和线程pid

在linux系统中,

每个进程有一个pid(进程ID),获取函数:getpid()

每个线程有一个tid(线程ID),获取函数:pthread_self()

每个线程有一个pid(不知道叫什么),获取函数:syscall(SYS_gettid)

程序举例:

void *hello(void *arg)

{

printf("%ld\n", syscall(SYS_gettid));

printf("%d\n", getpid());

printf("%ld\n", pthread_self());

}

int main()

{

printf("%ld\n", syscall(SYS_gettid));

printf("%d\n", getpid());

printf("%ld\n", pthread_self());

printf("------------------------------\n");

pthread_t pthread_id;

pthread_create(&pthread_id, NULL, hello, NULL);

sleep(2);

printf("------------------------------\n");

printf("%ld\n", syscall(SYS_gettid));

printf("%d\n", getpid());

printf("%ld\n", pthread_self());

return 0;

}

结果显示

linux 线程tid,linux中线程的pid,线程的tid和线程pid_第1张图片

注意:主线程的pid和所在进程的pid一致,可以通过这个来判断是否是主线程

标签:ld,syscall,printf,pid,线程,pthread,tid

来源: https://blog.csdn.net/qq_34489443/article/details/100585685

你可能感兴趣的:(linux,线程tid)