Überblick
Für Multi -Thread -Programme sind Produzenten und Verbrauchermodelle sehr klassische Modelle. Genauer gesagt sollte es als "Produzent-Verbraucher-Warehouse-Modell" bezeichnet werden. Nach dem Verlassen des Lagerhauses fehlt Produzenten und Verbrauchern den gemeinsamen Speicherplatz, und es gibt kein Problem, das nicht kollaborativ ist.
Vorbildliches Beispiel
Definieren Sie eine Szene. In einem Lagerhaus können nur 10 Artikel gelagert werden. Gleichzeitig müssen Sie auf die folgenden 4 Punkte achten:
1. gleichzeitig kann ein Produzent produziert werden.
2. gleichzeitig kann ein Verbraucherverbrauch verfügbar sein.
3. Wenn das Lagerhaus leer ist, können die Verbraucher nicht weiter konsumieren. Verbraucher müssen vor dem Verbrauch der Verbraucher leer recyceln, ob der aktuelle Lagerstatus leer ist.
4. Wenn das Lagerhaus voll ist, kann der Hersteller nicht weiter produzieren. ausführen.
Der Beispielcode lautet wie folgt:
Public Class Concurrence {public void main (String [] args) {Warehouse Warehouse = New Warehouse () Produzent = neuer Produzent (Lager); ; {Synchronized (this) {while (index == store_size) {try {this.wait ();} catch (interruptedException e) {e.printstacktrace ();}} ts [index ++] = product; ); ) {e.printstacktrace ();} String proput = storeProduts [index- 1]; (); String product = "product"+i; }}}