빈 상태와 종료 상태를 분리해야 접수된 작업을 모두 배출하고 끝낼 수 있다.
항목이 있으면 닫힘 여부와 관계없이 하나를 가져간다.
열린 상태라면 다음 제출을 기다린다.
새 제출을 금지하고 잠든 소비자를 모두 깨운다.
닫혔고 비어 있을 때만 종료 결과를 반환한다.
핵심: 닫힘만 보고 즉시 종료하면 큐에 남은 작업이 유실된다.