[완료]쓰레드 생성후 종료할 때 pthread_exit() 를 꼭 호출해야 하나요?
글쓴이: poplinux / 작성시간: 수, 2008/01/30 - 5:25오후
안녕하세요.
다음과 같은 형태로 코드를 만들었습니다.
int main() { ..... ..... while( pthread_create(..., testFunc, .....); .... /* join 사용안함 */ } ... ... } void *testFunc(void *args) { char data[128 * 1024]; return NULL: }
위와 같은 형태로 코드를 작성했습니다.
무한 루프를 돌면서 쓰레드를 생성하고 쓰레드 안에서 배열을 선언한후 pthread_exit() 를 사용안하고 리턴했습니다.
이런 형태로 작성한후 사용 메모리를 관촬했는데 메모리가 계속 줄어 드는 것을 확인했습니다.
계속 줄어 들다가 커널에서 "메모리가 모자릅니다" 라는 메시지를 출력하고 killed 시키더군요.
질문입니다.
쓰레드에서 pthread_exit() 를 호출 안하면 자원 반환을 안 하나요?
Forums:
Re: pthread_join()
pthread_join() 을 호출하지 않으면, 생성된 쓰레드에서 사용한 자원을 반환하지 않습니다.
(자원을 회수하지 않는다....가 맞을지도 모르겠습니다.)
pthread_join() 을 호출하고 싶지 않다면, pthread_detach() 를 사용하는 것이 나을 것 같습니다.
저도 몰랐는데..
저도 참고 합니다.
그런데 혹시... 댓글 달지 않고.. 게시물 스크랩이 가능한가요?
가능하다면 알려주시겠어요?
매번 댓글 달아서 흔적을 남기고 있습니다..
감사합니다.
감사합니다.
pthread_detach() 를 사용하여 해결했습니다.
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
댓글 달기