고전적인 문제들 (1) 썸네일형 리스트형 전통적 동기화 문제와 데드락 데드락은 동시성 이슈에서 다루는 게 좋을 것 같았지만, 예시와 함께 정리해보려고 한다. Produer-Consumer problem 소비자와 생산자가 유한한 버퍼를 갖는 상황에서 소비자와 생산자가 상호 배타적으로 접근하고, 소비자는 버퍼가 있으면 소비하고 , 생산자는 원소가 없으면 원소를 생성해야 한다. 위의 문제를 해결하려는 조건은 생산자가 우선 실행된 적이 있어야 하고, 생산자의 실행 횟수가 소비자보다 많아야 한다. 이를 해결하기 위해서 3가지 세마포를 사용한다 mutex라는 생산자 소비자 상호 배제를 위한 세마포 slots이라는 비어있는 버퍼의 개수를 나타내는 세마포 items라는 버퍼에 차있는 개수를 나타내는 세마포 여기서 주의할 점은 다음과 같이 코드를 작성해 버리면 데드락에 걸릴 수가 있다. .. 이전 1 다음