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

Java LinkedBlockingQueue

Java LinkedBlockingQueue

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

00 класс Java 13 Framework обеспечивает реализацию очереди блокировки с использованием связанного списка.

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

<час>

Создание LinkedBlockingQueue

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

Вот как мы можем создать связанную очередь блокировки в Java:

<сильный>1. Без начальной емкости

04

Здесь начальная емкость по умолчанию будет 2 31 . -1.

<сильный>2. При начальной емкости

14

Здесь

Например,

21

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

<час>

Методы LinkedBlockingQueue

32 Класс обеспечивает реализацию всех методов интерфейса BlockingQueue.

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

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

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

<час>

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

Например,

35

Вывод

43
<час>

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

Например,

52

Вывод

64
<час>

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

Например,

76

Вывод

83
<час>

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

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

<час>

Метод put()

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

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

Например,

93

Вывод

100 

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

<час>

метод take()

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

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

Например,

118

Вывод

123

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

<час>

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

Методы Описания
260 Выполняет поиск указанного элемента в связанной очереди блокировки. Если элемент найден, он возвращает 273 , если нет, возвращает 287 .
291 Возвращает длину связанной очереди блокировки.
300 Преобразует связанную очередь блокировки в массив и возвращает массив.
318 Преобразует связанную очередь блокировки в строку
<час>

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

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

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

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

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


java

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