这里我们看看C语言中pthread_self()的作用是什么。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</p><p>", pthread_self()); //get current thread id
pthread_exit(NULL);
return NULL;
}
main() {
pthread_t thread; // declare thread
pthread_create(&thread, NULL, func, NULL);
printf("From the main function, the thread id = %d</p><p>", thread);
pthread_join(thread, NULL); //join with main thread
}
输出
From the main function, the thread id = 1
From the function, the thread id = 1