ArrayBlockingQueue vs. Exemplo de fila de despejo sem bloqueio do Google Guava

Publicados: 2020-12-29
ArrayBlockingQueue vs. Exemplo de fila de despejo sem bloqueio do Google Guava

Os utilitários de simultaneidade são muito surpreendentes em Java.

O pacote java.util.concurrent contém muitos utilitários que podemos usar de várias maneiras diferentes.

Neste tutorial, veremos a diferença entre java.util.concurrent. ArrayBlockingQueue e com.google.common.collect. EvictingQueue .

O que é EvictingQueue?

EvictingQueue faz parte da Google's Guava library . Que é uma fila non-blocking e bounded (tamanho fixo) que removes automaticamente elementos head início da fila ao tentar adicionar elementos a uma full queue .

Como adicionar a biblioteca Guava do Google ao seu projeto eclipse-java?

Você pode adicionar abaixo a dependência do maven ao arquivo pom.xml se estiver usando o projeto maven. No caso de projeto non-maven – você deve baixá-lo daqui e incluir a biblioteca no caminho de classe do seu projeto.

O que é ArrayBlockingQueue?

É uma fila de blocking bounded (tamanho fixo) que armazena os elementos internamente em uma matriz. Ele CAN'T armazenar quantidades unlimited de elementos. Esta fila ordena os elementos FIFO (first-in-first-out).

Read more : Exemplo de fila Singleton

Vamos começar no Exemplo

  1. Criar ArrayBlockingQueue com tamanho 10
  2. Criar EvictingQueue com tamanho 10
  3. Tente adicionar 15 elementos à fila
  4. Para EvictingQueue - não lançará nenhum erro
  5. Para ArrayBlockingQueue - ele lançará o erro Queue Full

Criar classe CrunchifyArrayBlockingQueueVsEvictingQueue.java

Basta executar este programa Java como um aplicativo no Eclipse Console ou no IntelliJ IDEA e você verá um resultado como este.

Resultado do console:

Deixe-me saber se você enfrentar qualquer problema ao executar o programa acima.