pthread_join 는 실별번호 th
로 시작된 쓰레드가 종료되는걸 기다린다. 이러헌 쓰레드의 종료는
pthread_exit(3)로 종료되거나 혹은 리턴되는
경우 발생한다.
만약 thread_return값이 NULL 이 아니라면,
th의 리턴값이 저장된 영역이 전달되게 된다.
th 식별번호를 가지는 쓰레드가 join 되기
위해서는 반드시 joinable 상태의 쓰레드로 작동하고 있어야지만 한다.
만약 기다리는 쓰레드가 pthread_detach(3) 함수를
통해서 detached 상태가 되었거나 혹은
pthread_create(3)로 실행될때
PTHREAD_CREATE_DETACHED 특성으로 실행되었다면
join 으로 기다릴수 없게 된다.
joinable 쓰레드가 종료되면, 종료된다고 하더라도 즉시
메모리 자원등이 해제 되지 않는다. pthread_join 함수를 만나야지만
자원이 해제된다. 그럼으로 모든 joinable 쓰레드에 대해서는
반드시 pthread_join 을 호출해주어야 한다. 그렇지 않을경우
메모리 누수가 발생할것이다.
1장. ptread_join(3)
다른 쓰레드가 종료되는걸 기다린다.
1.1절. 사용법
1.2절. 설명
pthread_join 는 실별번호 th 로 시작된 쓰레드가 종료되는걸 기다린다. 이러헌 쓰레드의 종료는 pthread_exit(3)로 종료되거나 혹은 리턴되는 경우 발생한다.
만약 thread_return값이 NULL 이 아니라면, th의 리턴값이 저장된 영역이 전달되게 된다.
th 식별번호를 가지는 쓰레드가 join 되기 위해서는 반드시 joinable 상태의 쓰레드로 작동하고 있어야지만 한다. 만약 기다리는 쓰레드가 pthread_detach(3) 함수를 통해서 detached 상태가 되었거나 혹은 pthread_create(3)로 실행될때 PTHREAD_CREATE_DETACHED 특성으로 실행되었다면 join 으로 기다릴수 없게 된다.
joinable 쓰레드가 종료되면, 종료된다고 하더라도 즉시 메모리 자원등이 해제 되지 않는다. pthread_join 함수를 만나야지만 자원이 해제된다. 그럼으로 모든 joinable 쓰레드에 대해서는 반드시 pthread_join 을 호출해주어야 한다. 그렇지 않을경우 메모리 누수가 발생할것이다.
1.3절. 반환값
성공할경우 쓰레드식별자인 thread에 쓰레드 식별번호를 저장하고, 0을 리턴한다. 실패했을경우 0 이 아닌 에러코드 값을 리턴한다.
1.4절. 에러
식별번호 th가 잘못된 식별번호 일 경우
식별번호 th 쓰레드가 detached 상태일경우
1.5절. 예제
Recent Posts
Archive Posts
Tags