여기서 우리는 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\n", 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\n", thread); pthread_join(thread, NULL); //join with main thread }
출력
From the main function, the thread id = 1 From the function, the thread id = 1