ArrayBlockingQueue Vs. Beispiel für eine nicht blockierende EvictingQueue von Google Guava

Veröffentlicht: 2020-12-29
ArrayBlockingQueue Vs. Beispiel für eine nicht blockierende EvictingQueue von Google Guava

Nebenläufigkeits-Dienstprogramme sind in Java sehr erstaunlich.

Das Paket java.util.concurrent enthält viele Dienstprogramme, die wir auf verschiedene Arten verwenden können.

In diesem Tutorial gehen wir auf den Unterschied zwischen java.util.concurrent ein. ArrayBlockingQueue und com.google.common.collect. EvictingQueue .

Was ist EvictingQueue?

EvictingQueue ist Teil der Google's Guava library . Dabei handelt es sich um eine non-blocking , bounded (feste Größe) Warteschlange, die automatisch Elemente aus dem head der Warteschlange removes , wenn versucht wird, Elemente zu einer full queue hinzuzufügen.

Wie füge ich die Guava-Bibliothek von Google zu Ihrem Eclipse-Java-Projekt hinzu?

Sie können die folgende Maven-Abhängigkeit zur Datei pom.xml hinzufügen, wenn Sie das Maven-Projekt verwenden. Im Falle eines non-maven Projekts – Sie müssen es von hier herunterladen und die Bibliothek in den Klassenpfad Ihres Projekts aufnehmen.

Was ist ArrayBlockingQueue?

Es ist eine blocking , bounded (feste Größe) Warteschlange, die die Elemente intern in einem Array speichert. Es CAN'T unlimited viele Elemente speichern. Diese Warteschlange ordnet Elemente FIFO (first-in-first-out) an.

Read more : Beispiel einer Singleton-Warteschlange

Beginnen wir mit Beispiel

  1. Erstellen Sie eine ArrayBlockingQueue mit der Größe 10
  2. EvictingQueue mit Größe 10 erstellen
  3. Versuchen Sie, der Warteschlange 15 Elemente hinzuzufügen
  4. Für EvictingQueue – es wird kein Fehler ausgegeben
  5. Für ArrayBlockingQueue – es wird der Fehler Queue Full ausgegeben

Erstellen Sie die Klasse CrunchifyArrayBlockingQueueVsEvictingQueue.java

Führen Sie dieses Java-Programm einfach als Anwendung in der Eclipse-Konsole oder IntelliJ IDEA aus, und Sie werden das Ergebnis wie dieses sehen.

Konsolenergebnis:

Lassen Sie mich wissen, wenn bei der Ausführung des obigen Programms ein Problem auftritt.