ArrayBlockingQueue vs. Exemplu de EvictingQueue fără blocare Google Guava

Publicat: 2020-12-29
ArrayBlockingQueue vs. Exemplu de EvictingQueue fără blocare Google Guava

Utilitățile de concurență sunt foarte uimitoare în Java.

Pachetul java.util.concurrent conține o mulțime de utilitare pe care le-am putea folosi în mai multe moduri.

În acest tutorial vom analiza diferența dintre java.util.concurrent. ArrayBlockingQueue și com.google.common.collect. EvictingQueue .

Ce este EvittingQueue?

EvictingQueue face parte din Google's Guava library . Care este o coadă non-blocking , bounded (dimensiune fixă), care removes automat elemente din head cozii atunci când încearcă să adauge elemente la o full queue .

Cum să adăugați biblioteca Google Guava la proiectul dvs. eclipse-java?

Puteți adăuga mai jos dependența Maven la fișierul pom.xml dacă utilizați proiectul Maven. În cazul unui proiect non-maven – trebuie să îl descărcați de aici și să includeți biblioteca în calea de clasă a proiectului.

Ce este ArrayBlockingQueue?

Este o coadă de blocking , bounded (dimensiune fixă), care stochează elementele intern într-o matrice. CAN'T stoca cantități unlimited de elemente. Această coadă comandă elementele FIFO (primul-intrat-primul-out).

Read more : Exemplu de coadă singleton

Să începem cu Exemplul

  1. Creați ArrayBlockingQueue cu dimensiunea 10
  2. Creați EvictingQueue cu dimensiunea 10
  3. Încercați să adăugați 15 elemente la coadă
  4. Pentru EvittingQueue – nu va arunca nicio eroare
  5. Pentru ArrayBlockingQueue – va genera o eroare Queue Full

Creați clasa CrunchifyArrayBlockingQueueVsEvictingQueue.java

Doar rulați acest program Java ca aplicație în Consola Eclipse sau IntelliJ IDEA și veți vedea un rezultat ca acesta.

Consolă rezultat:

Anunțați-mă dacă vă confruntați cu vreo problemă la rularea programului de mai sus.