POSIX Thread는 detach를 해서 스레드가 종료되면 자동으로 Thread에 할당된 자원을 반환하게 하잖아요.
ㅡ_-) 그렇다면, Windows의 Thread 역시 detach 비스무레한 것을 해줘야하나요? (물론 결과값에 대해 신경 쓸 필요 없는 쓰레드입니다...)
예전에 포팅때문에 조사해본적이 있는 문제네요.
윈도우에서는 스레드를 생성하면 스레드 핸들을 가지게됩니다.
실행이 끝난 스레드의 자원이 커널내에서 완전히 해제되는 조건은 스레드 핸들의 reference count가 0이 될 것입니다.
즉 해당 스레드의 핸들들만 확실히 close 해주면(여기서 CloseHandle 관련 API를 필히 이용) 커널이 자원해제를 알아서 해줍니다.
윈도우에서는 스레드 핸들을 닫아주세요.
예전에 포팅때문에 조사해본적이 있는 문제네요.
윈도우에서는 스레드를 생성하면 스레드 핸들을 가지게됩니다.
실행이 끝난 스레드의 자원이 커널내에서 완전히 해제되는 조건은
스레드 핸들의 reference count가 0이 될 것입니다.
즉 해당 스레드의 핸들들만 확실히 close 해주면(여기서 CloseHandle 관련 API를 필히 이용) 커널이 자원해제를 알아서 해줍니다.