이번 장에서는 6장에 제시된 도구를 몇 가지 고전적인 동기화 문제에 적용한다!
→ 많은 클래스의 병행 제어(concurrency control) 문제에 대한 예로서, 중요한 여러 가지의 다른 동기화 문제들을 알아본다.
→ 이 문제는 일반적으로 동기화 프리미티브들의 능력을 설명하기 위해 사용된다.
n
개의 버퍼로 구성된 풀(pool)이 있으며, 각 버퍼는 한 항목을 저장할 수 있다고 가정한다.
mutex
이진 세마포는 버퍼 풀에 접근하기 위한 상호 배제 기능을 제공하며, 1
로 초기화된다.empty
와 full
세마포들은 각각 비어 있는 버퍼의 수, 꽉 찬 버퍼의 수를 기록한다.생산자 코드