바운드 버퍼 문제가있는 고전적 생산자의 변형을 구현해야합니다. 읽는 사람과 작가가 경계를 지닌 버퍼를 사용하는 방식이 더 많습니다.한 명의 생산자, 두 명의 소비자 변형
나는 한 명의 생산자와 두 명의 소비자를 가지고 있지만, 두 소비자는 모두 덮어 쓰기 전에 각 항목을 버퍼에서 읽어야하므로 basic solution이 작동하지 않습니다.
프로듀서가 빈 세마포어를 두 번 기다렸다가 두 번 신호를 보냈지 만 예상하지 못한 결과로 작동하지 않았습니다.
매우 간단한 해결책은 생산자가 생산 한 다음 각 소비자에게 신호를 보내고 두 번 기다리는 것입니다. 각 소비자는 제작자를 기다린 다음 소비하고 리더에게 신호를 보냅니다. 이 솔루션에서 적어도 소비자는 동시에 실행되지만 문제의 정신을 실제로 포착하지는 않으며 버퍼를 활용하지도 않습니다. 생산자가 n 항목을 버퍼에 생성 한 다음 소비자가 읽을 수있을 때까지 기다렸다가 적어도 약간의 오버 헤드를 줄 이도록 확장 할 수는 있지만 궁극적으로는 다르지 않습니다.
제약 조건 : 만
- 의 pthreads 하나의 버퍼
요약 :
- 한 생산자는 각 각 항목을 읽어야합니다
- 두 소비자 버퍼에 기록 덮어 쓰기 전의 버퍼 생산자가
이 경우 기존 솔루션을 적용하는 방법을 알 수 없습니다.