타입이 있는 종료 메시지 처리

정상 데이터와 종료 신호를 sealed 타입으로 구별하면 값 충돌을 막을 수 있다.

  1. 작업 제출

    생산자가 Work 메시지를 FIFO 큐에 넣는다.

  2. 작업 처리

    소비자가 Work를 꺼내 업무 계산을 수행한다.

  3. 종료 삽입

    조정자가 소비자 수만큼 Stop 메시지를 마지막에 넣는다.

  4. 자연 종료

    각 소비자가 Stop 하나를 받아 반복을 끝낸다.

핵심: 여러 생산자의 제출이 모두 끝난 뒤 종료 메시지를 넣어야 작업 뒤 순서를 보장한다.