치춘짱베리굿나이스

[Rank 3] Philosophers 본문

42/42s Cursus

[Rank 3] Philosophers

치춘 2021. 9. 4. 11:04

철학자에 손도 안 댄지 어연 한달째... 다시 재개해보고자 한다...

I've never thought philosophy would be so deadly.

굶어죽는 철학자

주의사항

  • 무지성으로 코딩했다가 후회할 것이다
    • 스레드와 뮤텍스 (필수파트), 프로세스와 세마포어 (보너스파트) 를 많이 공부하도록 하자
  • 철학자가 죽는 것을 어떻게 알아채야 할까?
    • 철학자 감시 스레드를 하나 만들어서 main 스레드로부터 join하기
    • 철학자 감시 스레드 하위에 철학자들을 생성하고 detach한 후, philo_setting 구조체 내부의 if_dead 계속 감시하기
    • 이 방식을 사용하면 철학자 감시 스레드와 철학자 스레드들이 같이 돌기 때문에 누가 죽는지 파악이 가능

사전에 공부해야 할 내용

Mandatory

프로세스와 스레드

스레드 함수 예제

joined & detached 스레드 예제

Bonus

사용가능 함수

사용가능 함수 정리 (Mandatory)

사용가능 함수 정리 (Bonus)

Comments