ArrayBlockingQueue против. Пример неблокирующей очереди EvictingQueue в Google Guava

Опубликовано: 2020-12-29
ArrayBlockingQueue против. Пример неблокирующей очереди EvictingQueue в Google Guava

Утилиты параллелизма очень хороши в Java.

Пакет java.util.concurrent содержит множество утилит, которые можно использовать по-разному.

В этом уроке мы рассмотрим разницу между java.util.concurrent. ArrayBlockingQueue и com.google.common.collect. EvictingQueue .

Что такое EvictingQueue?

EvictingQueue является частью Google's Guava library . Это non-blocking bounded (фиксированного размера) очередь, которая автоматически removes элементы из head очереди при попытке добавить элементы в full queue .

Как добавить библиотеку Google Guava в ваш проект eclipse-java?

Вы можете добавить ниже зависимость maven к файлу pom.xml, если вы используете проект maven. В случае проекта, non-maven , вам необходимо скачать его отсюда и включить библиотеку в путь к классам вашего проекта.

Что такое ArrayBlockingQueue?

Это blocking bounded (фиксированного размера) очередь, в которой элементы хранятся внутри массива. Он CAN'T хранить unlimited количество элементов. Эта очередь упорядочивает элементы FIFO (первым пришел-первым обслужен).

Read more : Пример одиночной очереди

Начнем с примера

  1. Создайте ArrayBlockingQueue размером 10
  2. Создайте EvictingQueue размером 10
  3. Попробуйте добавить 15 элементов в очередь
  4. Для EvictingQueue — не выдаст никакой ошибки
  5. Для ArrayBlockingQueue — выдает ошибку Queue Full .

Создать класс CrunchifyArrayBlockingQueueVsEvictingQueue.java

Просто запустите эту Java-программу как приложение в Eclipse Console или IntelliJ IDEA, и вы увидите такой результат.

Результат консоли:

Дайте мне знать, если у вас возникнут какие-либо проблемы с запуском вышеуказанной программы.