producer consumer

생산자와 소비자는 빈 칸, 데이터, 버퍼 접근을 따로 맞춘다

empty는 넣을 공간, items는 꺼낼 데이터, mutex는 버퍼 배열 접근을 지킨다.

producer wait empty 빈 슬롯 확보
buffer mutex 한 번에 한 스레드
consumer wait item 데이터 도착 대기
signal 상태 갱신 empty/items 반대 증가
세마포어
의미
잘못 쓰면
empty
남은 슬롯 수
생산자가 덮어씀
items
꺼낼 데이터 수
소비자가 빈 버퍼 읽음
mutex
버퍼 구조 보호
head/tail 경쟁
순서
wait 후 lock
deadlock 위험 줄임
핵심 empty는 넣을 공간, items는 꺼낼 데이터, mutex는 버퍼 배열 접근을 지킨다.