parent thread가 종료될때 child thread 의 운명은?
글쓴이: dingdong77 / 작성시간: 수, 2003/06/04 - 1:57오후
프로세스의 main thread가 아닌 parent thread가 종료했을때 child thread들은 자동으로 종료되는건가요?
즉, thread A가 B를 생성하고 B가 C를 생성했을때
A가 종료하면 프로세스의 main()이 리턴하는 격이므로 모든 스레드가 같이 종료되겠지만,
B가 종료했을때 C는 무사한지가 궁금합니다.
간단한 상황인데 너무 어렵게 설명한 느낌이... :?
Forums:
thread를 생성하면 parent/child 의 개념이 없는 것으로 알
thread를 생성하면 parent/child 의 개념이 없는 것으로 알고 있습니다. thread 를 생성하면 전부 peer 의 개념이므로 별 상관이 없을 듯 하네요. 그래서 join 을 써서 종료 시점을 알아낼 수 있습니다.
/** 주워 들은 것도 내 것이다. 많이 주워 들어야지*/
POSIX 쓰레드에서는 parent thread, child thread
POSIX 쓰레드에서는 parent thread, child thread의 관계가 존재하지 않습니다.
예를 들어, main thread(또는 initial thread)가 쓰레드 A를 생성했다고 해서 쓰레드 A가 main thread의 자식 쓰레드라고 말하지는 않습니다.
단, 한 가지 제약을 두고 있는데, 그 제약이란
"초기 쓰레드(main)가 리턴하는 경우는 프로세스 전체를 종료시킨다"는 것입니다.
따라서, 초기 쓰레드만 종료하고자 하는 경우라면 pthread_exit() 를 사용하셔야 합니다
네. ajoupark 님 말씀대로 구별되지 않습니다. 첨언하면th
네. ajoupark 님 말씀대로 구별되지 않습니다. 첨언하면
thread에서 pthread_exit 호출로 종료하는 경우에 해당 thread만 종료합니다.
thread에서 exit 호출을 하게되면 동일 process의 모든 thread가 종료합니다.
main thread(편의상 이렇게 표현하겠습니다)의 main함수 내부에서 return하게되면 결국 exit이 호출되므로 동일 process내의 모든 thread가 종료하게 됩니다.
우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자
결국, 임의의 쓰레드가 다른 쓰레드의 종료시점을 알아야 한다면 메인쓰레드
결국, 임의의 쓰레드가 다른 쓰레드의 종료시점을 알아야 한다면 메인쓰레드가
pthread_join()으로 다른 쓰레드의 종료상황을 조율 해줘야 할테고, 그렇지 않다면, 메인쓰레드도 어떠한 루틴을 타고 pthread_exit()각각 종료하게 되겠죠.
앞마당 먹고 시작한 저그의 8할은 뮤탈 테크를 먼저 탄다. 하지만 나머지 2할때문에 항상 스켄이 모자란다. - _-;
댓글 달기