preThread 된 서버 구현시 Thread 관련 질문이 있습니다.
글쓴이: ookaooka / 작성시간: 수, 2009/03/18 - 8:52오후
지금 저는 Richard stevens가 쓴 Unix network programming (한글판 ^^;;)
책을 보면서 공부를 하고 있는 중인데요
책을 보다가 궁금한게 있어서 이렇게 질문을 드립니다.
제가 궁금한 사항은 preThread된 서버 구현이고요
서버 구성은 main Thread가 accept해서 client fd를 큐에 집어 넣고
쓰레드들이 큐에 있는 client를 처리해주는 형식입니다.
main()
{
childe_thread 생성
for(; ;){
accept()
enqueue()
}
}
child_thread(){
dequeue()
serve()
}
대략 위와 같은 형태인데요 궁금한점은 미리 생성된 thread들 중에 하나가 죽으면
확인해서 새로운 child 쓰레드를 생성해주고 싶은데요
thread가 죽었다는 것을 어떻게 확인할 수 있나요?
(child_thread는 비정상 종료됬다고 가정합니다.)
Forums:
...
일반적으로 thread가 비정상 종료될 경우 프로세스가 통째로 종료됩니다. Signal handler라든지, 여러 가지 수단을 사용하면 thread만 죽게 만들 수도 있겠습니다만 이 경우 쓰레드가 죽으면서 메모리를 어떻게 망가뜨렸을지 알 수 없기 때문에 나머지 쓰레드가 계속 진행하는 게 큰 의미가 없습니다.
(일반론입니다. 상황에 따라 안 그럴 수도 있습니다. -.-)
댓글 달기