pthread_detach 관련 질문을 드립니다.
글쓴이: jee89 / 작성시간: 목, 2005/09/22 - 5:34오후
1.생성된 thread에서 pthread_detach를 하면
main thread에서 join할 필요없이 생성된 thread가 할일을 다 마치고
pthread_exit를 하는 순간 자원이 OS에 반납되는것이 맞습니까?
2. 생성된 thread에서 pthread_detach를 한후
main thread가 먼저 종료( process 종료 )할 경우
생성된 thread도 할일을 미처 마치지 않은상태라도
덩달아 죽을 것같은데, 이것을 피하려면 어떻게 하죠?
감사합니다.
Forums:
1. 예- 만일 pthread_detach를 안했고,, join도 안
1. 예
- 만일 pthread_detach를 안했고,, join도 안했다면 리소스의 누수가 발생합니다.
2. 메인(주쓰레드)이 안죽고 기다려야지요.
답변
1. pthread_detach는 스래드를 메인스래드에서 분리 시키는 역할을 합니다. 이것은 스래드 종료시 즉시 스래드의 모든 자원을 반납하는 것을 보증합니다.
[참고] pthread_create시 pthread_attr_t에 detachstate를 지정해 주면 detach 상태로 생성됩니다. 따라서 따로 pthread_detach를 실행안해도 됩니다.
2. 주 스래드는 main문을 포함한 스래드 입니다. 주 스래드가 종료하면 다른 스래드 모두 종료되는 것은 당연합니다. 우리가 알다시피 main 문이 종료하면 프로세스가 종료되기 때문입니다.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
댓글 달기