P스레드 수명

스레드 종료 회수

joinable 스레드는 종료 뒤에도 결과와 일부 자원이 남고, detached 스레드는 결과를 받을 수 없는 대신 종료 시 자동으로 회수됩니다.

joinable

결과가 필요하면 join 지점을 코드에 남긴다

생성 pthread_create
대기 호출 스레드가 종료와 반환 값을 기다립니다.
회수 pthread_join
detached

detached 스레드 회수

분리 pthread_detach
제약 한 번 detach하면 join으로 결과를 받을 수 없습니다.
회수 종료 시 라이브러리와 커널 자원이 정리됩니다.
process exit

main이 끝나면 살아 있던 스레드도 함께 사라진다

위험 파일 쓰기, 네트워크 전송, lock 해제가 중간에 끊길 수 있습니다.
대응 종료 플래그, 조건 변수, timeout 있는 join을 설계합니다.
검증 shutdown path
반환 포인터 스레드 스택 주소를 반환하지 말고 힙 또는 안전한 소유권을 사용합니다.
루프 변수 같은 주소를 여러 스레드에 넘기지 말고 값별 저장 공간을 분리합니다.
백그라운드 작업 프로세스 종료보다 오래 필요한 작업은 별도 수명 주기 관리가 필요합니다.