[질문]실행한 Thread ID값 알아내기

실행하는 쓰레드의 ID값을 알고 싶은데 어느시점에서 값을 얻어야 하는지 조금 헷갈리네
요. 테스트를 해보니까 조금 이상한점이 있어서 질문하네요. 예를 들어서 예제 프로그램
이 아래와 같다고 가정을 하면요...
void *server_thread(void *arg) {
...
...
printf("Before Detach Current Thread ID3[%d ] in server thread\n", pthread_self());
pthread_detach(pthread_self()) ;
printf("After detach Current Thread ID4 [%d] in server thread\n", pthread_self());
...
...
}
main() {
pthread_t tid ;
printf("Current Thread ID1 [ %d ]\n", pthread_self());
if (pthread_create(&tid, NULL, server_thread, (void*)&info )) {
perror ("ERROR failed to create child thread");
}
printf("Current Thread ID2 [ %d ]\n", tid) ;
}
다음과 같이 해놓구 값을 찍어보니까...결과가 ID1만 다르고 ID 2,3,4값은 동일하더군요.
ID 2,3,4가 현재 쓰레드 ID값이라고 보는게 맞는건지요?
답변 부탁드리여... ^^;
댓글 달기