ArrayBlockingQueue vs. Esempio di coda di sfratto non bloccante di Google Guava

Pubblicato: 2020-12-29
ArrayBlockingQueue vs. Esempio di coda di sfratto non bloccante di Google Guava

Le utilità di concorrenza sono davvero sorprendenti in Java.

Il pacchetto java.util.concurrent contiene molte utilità che potremmo utilizzare in diversi modi.

In questo tutorial esamineremo la differenza tra java.util.concurrent. ArrayBlockingQueue e com.google.common.collect. EvictingQueue .

Cos'è EvictingQueue?

EvictingQueue fa parte della Google's Guava library . Che è una coda non-blocking e bounded (a dimensione fissa) che removes automaticamente gli elementi head della coda quando si tenta di aggiungere elementi a una full queue .

Come aggiungere la libreria Guava di Google al tuo progetto eclipse-java?

Puoi aggiungere sotto la dipendenza Maven al file pom.xml se stai usando il progetto Maven. In caso di progetto non-maven , devi scaricarlo da qui e includere la libreria nel percorso di classe del tuo progetto.

Che cos'è ArrayBlockingQueue?

È una coda blocking e bounded (a dimensione fissa) che archivia gli elementi internamente in un array. CAN'T memorizzare quantità unlimited di elementi. Questa coda ordina elementi FIFO (first-in-first-out).

Read more : Esempio di coda singleton

Iniziamo con Esempio

  1. Crea ArrayBlockingQueue con dimensione 10
  2. Crea EvictingQueue con dimensione 10
  3. Prova ad aggiungere 15 elementi alla coda
  4. Per EvictingQueue, non genererà alcun errore
  5. Per ArrayBlockingQueue – genererà l'errore Queue Full

Crea classe CrunchifyArrayBlockingQueueVsEvictingQueue.java

Basta eseguire questo programma Java come applicazione in Eclipse Console o IntelliJ IDEA e vedrai risultati come questo.

Risultato della console:

Fammi sapere se riscontri problemi durante l'esecuzione del programma sopra.