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 которые поддерживают операцию блокировки в связанной очереди блокировки.
Эти два метода отличают связанную очередь блокировки от других обычных очередей.
<час>Вставить элементы
65- Вставляет указанный элемент в связанную очередь блокировки. Выдает исключение, если очередь заполнена.73- Вставляет указанный элемент в связанную очередь блокировки. Он возвращает83если очередь заполнена.
Например,
35
Вывод
43<час>
Доступ к элементам
91- Возвращает элемент из начала связанной очереди блокировки. Он возвращает105если очередь пуста.114- Возвращает объект итератора для последовательного доступа к элементу из связанной очереди блокировки. Выдает исключение, если очередь пуста. Мы должны импортировать129пакет для его использования.
Например,
52
Вывод
64<час>
Удалить элементы
133- Возвращает и удаляет указанный элемент из связанной очереди блокировки. Выдает исключение, если очередь пуста.148- Возвращает и удаляет указанный элемент из связанной очереди блокировки. Он возвращает159если очередь пуста.168– Удаляет все элементы из связанной очереди блокировки.
Например,
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