스레드 02 - 기본과 동기화

2021. 3. 12. 15:37Computer(인강)/시스템 프로그래밍

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 지난시간에 이어서 스레드 함수에 대해서 살펴보도록 하겠습니다.

바로 시작하겠습니다.

 

 

 

스레드 디태치

# 해당 스레드가 종료될 경우, 즉시 관련 리소스를 해제(free)한다

- pthread_join을 기다리지 않고, 종료 즉시 리소스를 해제한다 

 

참고. 스레드 디태치와는 달리, 스래드 조인은 pthread_join으로 스레드가 종료가 되면 해당 영역이 없어지고

그다음 이 종료 상태값을 가지고 별도의 처리를 메인스레드에서 추가적으로 할 수 있게끔 하는것이다.

 

다시 정리!

 

리소스 측면에서보면

pthread_join스레드조인 : 해당 스레드가 종료하면 해당스레드에 대해 자원도 없어짐. 해당 스레드의 종료 상태값을 가지고 추가 처리 가능.

pthread_detach스레드 디태치 : 그 스레드가 종료되면 해당 스레드가 점유하고 있는 리소스를 막바로 없애줘 하면 쓴다.

 

 

실행 측면에서 보면

pthread_join스레드조인: pthread_join은 pthread_join다음에 있는 코드를 thread1이 종료되지 않으면 종료될때까지 기다림(종료될때까지 실행x) 예) 이 스레드가 끝날때까지 다음 코드가 실행되면 안된다 

 

pthread_detach스레드 디태치 : thread1이 종료될때까지 기다리지 않음. 호출하고 막바로 다음코드를 실행해준다.

예) 이 스레드가 끝나기 전이라도 다음 코드가 실행되는건 상관없다

 

 

예제코드

프로그램이 끝나가는 시점이라 detach는 안넣어보셨다고 함(그리고 주석해제함)

728x90
반응형