리눅스 쓰레드 서버 프로그래밍 도중..

pthread_join(tid, NULL);
와
pthread_detach(pthread_self()); 이걸쓰기 전까지는..
프로그램이 거의 문제 없이 돌아갔습니다.
단... 3500개 정도 쓰레드 생성되면.. 더이상 쓰레드 생성
못하는거 빼고..
그래서 pthread_join(tid, NULL); 와...
pthread_detach(pthread_self());
이 함수들을 추가 해주니깐.. 무리 없이 동작 하더군여..
쓰레드 갯수 제한이 없어지더군여..
헌데.. 메모리가 해제가 안되는거 같더군여.. 다 배열로 잡았는데..
쓰레드 하나 생성되서 그 함수를 실행할때마다
memset으로 다 메꿔주거.. 이상없게 했습니다.
헌데.. pthread_join(tid, NULL);
와
pthread_detach(pthread_self());
를 넣으면.. 안넣기 전엔 무리 없이 돌아가던게..
세그먼트 폴트가 일어납니다..
그부분 보면 별 문제 없는데여..
pthread_join(tid, NULL);
와
pthread_detach(pthread_self());
넣는다고 그렇게 되거든여..
무조건 세그먼트 폴트 일어나는게 아니라 가끔 그렇게 일어 납니다.
부탁 드립니다.
왜 이런 현상이 일어나며..해결방안은 어케 되는지..
아니면..
저걸 안쓰거 분리된 상태에서 쓰레드 생성제한에 안걸리게 하려면..
어떻게 해야 할지 막막하네여.. 부탁 드립니다.
Re: 리눅스 쓰레드 서버 프로그래밍 도중..
detach 후엔 join하실 수 없습니다.
댓글 달기