멀티 쓰레드1 쓰레드 관련 error(philosopher) 1. 개선전 사진 2. 개선후 사진 우선 philosopher라고 철학자 문제를 c로 구현해 보았다. 위의 사진에서 사진1에서 philo->check->die = 1 이 died가 프린트되고난 후에 바뀌게 된다. 내코드에서는 die = 1 이 된다면 쓰레드가 종료되는 플레그 같은 역활을 하게 된다. 이 때 많은 수의 쓰레드를 돌리면 died가 먼저 출력되고 philo->check->die = 1로 바뀌는 그 사이 시간에 다른 쓰레드에서 어떤 문구를 출력 할수 있게 된다. 따라서 사진2에서 본거와 같이 die = 1 가 먼저 바뀌고 나서 died를 출력하게 된다면 died가 다른쓰레드 문구 보다 먼저 출력되는 일이 없어진다. 이러한 시간차이도 꼼꼼히 생각해봐야할 것 같다. 멀티 쓰레드를 써야할 일이 있다면.. 2023. 7. 4. 이전 1 다음 728x90