Java: пример производителя-потребителя — обработка параллельного чтения/записи

Опубликовано: 2019-02-17

Пример производителя-потребителя — обработка одновременного чтения: записи

Проблема producer-consumer problem (также известная как bounded-buffer problem ) — это классический Java-пример проблемы синхронизации нескольких процессов.

Проблема описывает два процесса, the producer и the consumer , которые совместно используют общий буфер фиксированного размера, используемый в качестве очереди. Задача производителя состоит в том, чтобы сгенерировать часть данных, поместить ее в буфер и начать заново.

В то же время потребитель потребляет данные (т. е. удаляет их из буфера) по одной части за раз. Проблема состоит в том, чтобы гарантировать, что производитель не попытается добавить данные в буфер, если он заполнен, и что потребитель не попытается удалить данные из пустого буфера.

Ниже простая программа Java создаст эту проблему:

Примеры Java — проблема производителя-потребителя

Проблема:

Разрешение:

Добавьте ключевое слово synchronized , чтобы заблокировать data , пока мы их используем.

Лучшая Java-программа:

Результат примера Java Producer Consumer:

Java-производитель-потребитель-обучение-crunchify