쓰레드 생성 시 thread id 값 증가 관련??
글쓴이: amicuss / 작성시간: 목, 2007/02/15 - 12:25오후
안녕하세요.
소켓 통신에서 accept후에 thread를 아래와 같이 생성했다면
accept가 들어올 때마다 쓰레드가 생성되어 thread_id 값이 계속해서 증가할 것입니다.
pthread_attr_init(&thread_attr);
pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
result = pthread_create( &thread_id, &thread_attr, (void *(*)(void *))getRequest, (void *)clisock)
그럼 해당 시스템의 thread max 까지 가면 더 이상 thread create를 못하게 될텐데요..
이 때는 어떻게 해야 하나요?
쓰레드는 close 같은 함수가 없어서.. 해당 thread id 를 해제할 수도 없고
socket이나 file 콜에서는 close가 있어서 해당 fd 를 다시 사용할 수 있는것으로 알고 있습니다.
이 문제에 대해서 어떻게 생각하시나요?
Forums:
저같은 경우는
accept 하는 순간 쓰레드를 만들고 해당 쓰레드에서,
pthread_t myThread = pthread_self() 와 같이 자신의 thread id 를 얻어와
accept 연결 종료 되는 시점에서
pthread_detach(myThread) 했던거 같네요..
이렇게 하면, Thread id가 계속 증가 되지 않았던거 같네요
댓글 달기