깨끗한 코드를 작성하기 위한 열세번째 기록 다중 스레드 프로그래밍에서 사용하는 실행 모델 1. 생산자-소비자 생산자 스레드가 정보를 생성해 버퍼나 대기열에 넣습니다. (버퍼와 대기열은 한정된 자원) 소비자 스레드는 대기열에서 정보를 가져와 사용합니다. 생산자 스레드는 대기열에 빈 공간이 있어야 정보를 채웁니다. 소비자 스레드는 대기열에 정보가 있어야 가져옵니다. 생산자 스레드는 대기열에 정보를 채운 다음 소비자 스레드에게 신호를 보냅니다. 소비자 스레드는 대기열에서 정보를 읽어들인 후 신호를 보냅니다. 따라서 잘못하면 생산자 스레드와 소비자 스레드가 둘다 진행 가능함에도 불구하고 동시에 서로에게서 오는 신호를 기다릴 가능성이 존재합니다. 2. 읽기-쓰기 쓰기 스레드가 버퍼를 갱신하느 동안 읽기 스레드가 ..