Java: Producer-Consumer-Beispiel – Behandeln Sie gleichzeitiges Lesen/Schreiben

Veröffentlicht: 2019-02-17

Producer-Consumer-Beispiel – Behandeln Sie gleichzeitiges Lesen:Schreiben

Das producer-consumer problem (auch bekannt als bounded-buffer problem ) ist ein klassisches Java-Beispiel für ein Synchronisationsproblem mit mehreren Prozessen.

Das Problem beschreibt zwei Prozesse, the producer und the consumer , die sich einen gemeinsamen Puffer fester Größe teilen, der als Warteschlange verwendet wird. Die Aufgabe des Producers besteht darin, ein Datenelement zu generieren, es in den Puffer zu legen und von vorne zu beginnen.

Gleichzeitig verbraucht der Konsument die Daten Stück für Stück (dh er entfernt sie aus dem Puffer). Das Problem besteht darin, sicherzustellen, dass der Erzeuger nicht versucht, Daten in den Puffer hinzuzufügen, wenn er voll ist, und dass der Verbraucher nicht versucht, Daten aus einem leeren Puffer zu entfernen.

Das folgende einfache Java-Programm wird dieses Problem verursachen:

Java-Beispiele – Producer-Consumer-Problem

Problem:

Auflösung:

Fügen Sie das Schlüsselwort synchronized hinzu, um die data zu sperren, während wir sie verwenden.

Besseres Java-Programm:

Beispielergebnis für Java Producer Consumer:

java-producer-consumer-tutorial-crunchify