c 언어
2.2. pthread_join
sokoban
2007. 9. 19. 10:55
int pthread_join(pthread_t th, void **thread_return); 해당 쓰레드가 끝날때까지 기다리는 함수
void **thread_return: 리턴값을 반환 받기 위해서 쓰는것
첫번째 아규먼트 th는 기다릴(join)할 쓰레드 식별자이며, 두번째 아규먼트 thread_return은 쓰레드의 리턴(return) 값이다. thread_return 이 NULL 이 아닐경우 해다 포인터로 쓰레드 리턴 값을 받아올수 있다.

void **thread_return: 리턴값을 반환 받기 위해서 쓰는것
첫번째 아규먼트 th는 기다릴(join)할 쓰레드 식별자이며, 두번째 아규먼트 thread_return은 쓰레드의 리턴(return) 값이다. thread_return 이 NULL 이 아닐경우 해다 포인터로 쓰레드 리턴 값을 받아올수 있다.
#include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> // 쓰레드 함수 // 1초를 기다린후 아규먼트^2 을 리턴한다. void *t_function(void *data) { int num = *((int *)data); printf("num %d\n", num); sleep(1); return (void *)(num*num); } int main() { pthread_t p_thread; int thr_id; int status; int a = 100; thr_id = pthread_create(&p_thread, NULL, t_function, (void *)&a); if (thr_id < 0) { perror("thread create error : "); exit(0); } // 쓰레드 식별자 p_thread 가 종료되길 기다렸다가 // 종료리턴값을 가져온다. pthread_join(p_thread, (void *)&status); printf("thread join : %d\n", status); return 0; }