Java: 생산자 소비자 예제 – 동시 읽기/쓰기 처리

게시 됨: 2019-02-17

생산자 소비자 예 - 동시 읽기:쓰기 처리

producer-consumer problem ( bounded-buffer problem 이라고도 함)는 다중 프로세스 동기화 문제의 고전적인 Java 예제입니다.

문제는 대기열로 사용되는 공통 고정 크기 버퍼를 공유하는 the producerthe consumer 의 두 프로세스를 설명합니다. 생산자의 작업은 데이터 조각을 생성하고 버퍼에 넣고 다시 시작하는 것입니다.

동시에 소비자는 데이터를 한 번에 한 조각씩 소비합니다(즉, 버퍼에서 제거). 문제는 버퍼가 가득 찬 경우 생산자가 버퍼에 데이터를 추가하지 않고 소비자가 빈 버퍼에서 데이터를 제거하지 않도록 하는 것입니다.

간단한 Java 프로그램 아래에서 이 문제가 발생합니다.

자바 예제 – 생산자 소비자 문제

문제:

해결:

데이터를 사용하는 동안 data 를 잠그기 위해 synchronized 된 키워드를 추가합니다.

더 나은 자바 프로그램:

Java 생산자 소비자 예제 결과:

java-producer-consumer-tutorial-crunchify