ArrayBlockingQueue vs. Ejemplo de EvictingQueue sin bloqueo de Google Guava

Publicado: 2020-12-29
ArrayBlockingQueue vs. Ejemplo de EvictingQueue sin bloqueo de Google Guava

Las utilidades de concurrencia son muy sorprendentes en Java.

El paquete java.util.concurrent contiene muchas utilidades que podemos usar de diferentes maneras.

En este tutorial repasaremos la diferencia entre java.util.concurrent. ArrayBlockingQueue y com.google.common.collect. EvictingQueue .

¿Qué es EvictingQueue?

EvictingQueue es parte de Google's Guava library . Que es una cola bounded non-blocking (tamaño fijo) que removes automáticamente los elementos de la head de la cola cuando se intenta agregar elementos a una full queue .

¿Cómo agregar la biblioteca Guayaba de Google a su proyecto eclipse-java?

Puede agregar la dependencia maven a continuación al archivo pom.xml si está utilizando el proyecto maven. En el caso de un proyecto non-maven , debe descargarlo desde aquí e incluir la biblioteca en el classpath de su proyecto.

¿Qué es ArrayBlockingQueue?

Es una cola de blocking bounded (tamaño fijo) que almacena los elementos internamente en una matriz. CAN'T almacenar cantidades unlimited de elementos. Esta cola ordena los elementos FIFO (first-in-first-out).

Read more : Ejemplo de cola Singleton

Comencemos con el Ejemplo

  1. Crear ArrayBlockingQueue con tamaño 10
  2. Crear EvictingQueue con tamaño 10
  3. Intenta agregar 15 elementos a la cola
  4. Para EvictingQueue: no arrojará ningún error
  5. Para ArrayBlockingQueue: arrojará un error de Queue Full

Crear clase CrunchifyArrayBlockingQueueVsEvictingQueue.java

Simplemente ejecute este programa Java como una aplicación en Eclipse Console o IntelliJ IDEA y verá un resultado como este.

Resultado de la consola:

Avíseme si tiene algún problema al ejecutar el programa anterior.