Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java ArrayBlockingQueue

Очередь блокировки массива Java

В этом руководстве мы узнаем о классе ArrayBlockingQueue и его методах с помощью примеров.

04 Класс платформы Java Collections обеспечивает реализацию очереди блокировки с использованием массива.

Он реализует интерфейс Java BlockingQueue.

<час>

Создание ArrayBlockingQueue

Чтобы создать очередь блокировки массива, мы должны импортировать 16 пакет.

Как только мы импортируем пакет, вот как мы можем создать очередь блокировки массива в Java:

01

Здесь

Например,

10 

Примечание. Обязательно указать размер массива.

<час>

Методы ArrayBlockingQueue

29 класс обеспечивает реализацию всех методов в 36 интерфейс.

Эти методы используются для вставки, доступа и удаления элементов из очередей блокировки массива.

Также мы узнаем о двух методах 49 и 56 которые поддерживают операцию блокировки в очереди блокировки массива.

Эти два метода отличают очередь блокировки массива от других типичных очередей.

<час>

Вставить элементы

  • 67 - Вставляет указанный элемент в очередь блокировки массива. Выдает исключение, если очередь заполнена.
  • 72 - Вставляет указанный элемент в очередь блокировки массива. Он возвращает 80 если очередь заполнена.

Например,

28

Вывод

32
<час>

Доступ к элементам

  • 99 - Возвращает элемент из начала очереди блокировки массива. Он возвращает 108 если очередь пуста.
  • 112 - Возвращает объект итератора для последовательного доступа к элементам из очереди блокировки массива. Выдает исключение, если очередь пуста. Мы должны импортировать 121 пакет для его использования.

Например,

40

Вывод

58
<час>

Удалить элементы

  • 135 - Возвращает и удаляет указанный элемент из очереди блокировки массива. Выдает исключение, если очередь пуста.
  • 140 - Возвращает и удаляет указанный элемент из очереди блокировки массива. Он возвращает 154 если очередь пуста.
  • 165 - Удаляет все элементы из очереди блокировки массива.

Например,

61

Вывод

73
<час>

метод put() и take()

В многопоточных процессах мы можем использовать 175 и 187 блокировать работу одного потока, чтобы синхронизировать его с другим потоком. Эти методы будут ждать, пока их можно будет успешно выполнить.

<час>

метод put()

Чтобы добавить элемент в конец очереди блокировки массива, мы можем использовать 198 метод.

Если очередь блокировки массива заполнена, он ожидает, пока в очереди блокировки массива не появится место для добавления элемента.

Например,

80

Вывод

99

Здесь 200 метод может вызвать ошибку 214 если он прерывается во время ожидания. Следовательно, мы должны заключить его в try..catch. блокировать.

<час>

метод take()

Чтобы вернуть и удалить элемент из начала очереди блокировки массива, мы можем использовать 225 метод.

Если очередь блокировки массива пуста, он ожидает, пока в очереди блокировки массива не появятся элементы для удаления.

Например,

107

Вывод

114

Здесь 237 метод выдаст 248 если он прерывается во время ожидания. Следовательно, мы должны заключить его в 257 блокировать.

<час>

Другие методы

Методы Описания
263 Ищет указанный элемент в очереди блокировки массива.Если элемент найден, возвращается 276 , если нет, возвращает 280 .
294 Возвращает длину очереди блокировки массива.
307 Преобразует очередь блокировки массива в массив и возвращает его.
316 Преобразует очередь блокировки массива в строку
<час>

Зачем использовать ArrayBlockingQueue?

324 использует массивы в качестве внутреннего хранилища.

Он считается поточно-ориентированным. коллекция. Следовательно, он обычно используется в многопоточных приложениях.

Предположим, один поток вставляет элементы в очередь, а другой поток удаляет элементы из очереди.

Теперь, если первый поток медленнее второго, то очередь блокировки массива может заставить второй поток ждать, пока первый поток не завершит свои операции.


java

  1. Операторы Java
  2. Java-комментарии
  3. Java для каждого цикла
  4. Java-строки
  5. Java-интерфейс
  6. Анонимный класс Java
  7. Java-проба с ресурсами
  8. Java-аннотации
  9. Утверждения Java
  10. Java вектор