이미 몇개 임시??로 구현해놓고 쓰는거긴 하지만 확실히 어떤 순서로 구현을 할 건지 정하고 하는 게 좀더 수월하게 구현을 할 수 있지 않을까한다.
멀티 스레드 아마 구현했고 뮤텍스도 사용해서 일단 하나의 스레드만 해당 함수에 들어가게 했다. 아마도???
그럼 이제 인자 파싱을 하고 구조체 변수도 늘려야 한다
일단 인자로 받아야하는 항목들이
철학자의 수, 철학자의 수명 , 밥을 먹는데 걸리는 시간, 잠자는 시간, 각 철학자가 최소한 밥을 먹어야 하는 횟수다. (총 5개)
마지막은 선택사항이라 따로 처리를 해줘야한다.
다행히 숫자만 들어가서 푸쉬스압때처럼 인자 예외처리를 하면 될 것 같다. (+여기에 음수가 들어올수 없으니 음수 예외처리까지해야함)
먼저 숫자만 들어온다고 가정을 한 코드를 짜고 그 후에 에러처리를 하면 될것 같다.
예외처리 항목
1. 인자가 5개 초과로 들어올때
2. 인자가 4개 미만으로 들어올때
3. 인자에 숫자가 아닌 무언가가 있을때
4. "1 2" 이럴때도 인식 되게 끔
5. 인자로 NULL 들어올때
전부 완료
현재시간을 밀리초로 나타내라고 했으니
tv_sec / 1000
그냥 이런식으로 하면 될 것 같다.
작업 차이 시간을 나타내라고 명시가 안되어있으니 이게 맞겠지?
포크는 뮤텍스 변수고
포크를 철학자 수 만큼 배열로 만들어주고 어떻게 어떻게 하는 거라고 한다.
철학자가 한명일떈 죽는 시간걸리고 죽는게 맞고
뮤텍스 변수 어제 뮤텍스 공부할떄 봤었는데 솔직히 기억 안나서 다시 봐야한다.