C 中的 pthread_self()

在这里我们将看到pthread_self()在C中会产生什么效果。该pthread_self()函数用于获取当前线程的ID。该函数可以唯一标识现有线程。但是如果有多个线程,一个线程完成了,那么那个id就可以复用了。所以对于所有正在运行的线程,id 是唯一的。

示例

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void* func(void* p) {
   printf("From the function, the thread id = %d\n", pthread_self()); //获取当前线程ID
      pthread_exit(NULL);
   return NULL;
}
main() {
   pthread_t thread; // 声明线程
   pthread_create(&thread, NULL, func, NULL);
   printf("From the main function, the thread id = %d\n", thread);
   pthread_join(thread, NULL); //加入主线程
}
输出结果
From the main function, the thread id = 1
From the function, the thread id = 1