pthread_create()로 스레드 2개를 만들어서 돌리려는데 pthread_join()은 왜 써주는 거지??
루프돌면서 계속 값 찍어주는 단순한 작업을 하는 thread 1번과 2번을 만들었으면
pthread_join(1번스레드, 생략); pthread_join(2번스레드, 생략);을 해주는 이유가 뭐지? 안쓰면 바로 꺼지고..
join은 다른 스레드의 종료를 기다린다고 하는데, 위처럼 2개를 조인하면 스레드 1번이 꺼지기 전에 2번이 안돌아가야 되지 않어? 그런데 둘다 돌아가긴 하고.
따로따로 놀고 있는 메인스레드, 스레드1번, 스레드 2번들을 한곳에 묶을려고 그렇게 하는거??
어떡해 // 교착상태(?) 어쩌고 쓰고 왜지워... 긍데 왜 교착상태가 나오는겅미??
내가 난독증인가 무슨 말인지 이해를 못하겠는데, join()은 sleep()인데 슬립 완료 시점 타이밍이 해당 프로세스 종료 시점이라고 이해하면 되지 않나요; 뭐가 더있는건가; 우잉;
아니 글을 join을 왜 안쓰면 안되는지로 봤음. 꼭 환형 방식으로 설계를 하지 않았더라도, 서로 공통 자원 공유라던가, 메시지 교환이 이루어질때 중간 프로세스가 먼저 죽어버리면, 다른 프로세스도 전부 데드락되어 버리니(..) 이거 말하는 줄 앎.
join()을 안해주면 메인스레드가 죽을때 다른 스레드도 다 같이 죽는다는거?? 아....알것 같다. 이것이 맞다면 어떡해 고마워 ㅋ