Перейти к основному содержимому

6 записей с тегом "Java Queue"

Посмотреть все теги

· 5 мин. чтения

1. Введение

В этом уроке мы обсудим интерфейс Java Queue .

Во- первых, мы взглянем на то, что делает Queue , и на некоторые из его основных методов `` . Далее мы углубимся в ряд реализаций, которые Java предоставляет в качестве стандарта.

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

2. Визуализация очереди

· 5 мин. чтения

1. Обзор

В этой статье мы рассмотрим конструкцию DelayQueue из пакета java.util.concurrent . Это блокирующая очередь, которую можно использовать в программах производитель-потребитель.

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

2. Реализация Delayed для элементов в DelayQueue

Каждый элемент, который мы хотим поместить в DelayQueue , должен реализовать интерфейс Delayed . Допустим, мы хотим создать класс DelayObject . Экземпляры этого класса будут помещены в DelayQueue.

· 4 мин. чтения

1. Введение

В этой статье мы сосредоточимся на классе PriorityBlockingQueue и рассмотрим несколько практических примеров.

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

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

Наконец, мы покажем, как совместное использование этих двух функций может быть полезным при обработке данных в нескольких потоках.

2. Приоритет элементов

· 4 мин. чтения

1. Обзор

В этой статье мы рассмотрим SynchronousQueue из пакета java.util.concurrent .

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

2. Обзор API

SynchronousQueue поддерживает только две операции: take() и put(), и обе они блокируют .

· 6 мин. чтения

1. Обзор

В этой статье мы рассмотрим конструкцию TransferQueue из стандартного пакета java.util.concurrent .

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

Реализация на самом деле похожа на BlockingQueue , но дает нам новую возможность реализовать форму обратного давления. Это означает, что когда производитель отправляет сообщение потребителю с помощью метода transfer() , производитель будет оставаться заблокированным до тех пор, пока сообщение не будет использовано.

2. Один производитель — ноль потребителей

· 5 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим некоторые основные реализации параллельных очередей в Java. Общие сведения об очередях см. в нашей статье «Руководство по интерфейсу очередей Java » .

2. Очереди

В многопоточных приложениях очереди должны обрабатывать несколько параллельных сценариев производителей-потребителей. Правильный выбор параллельной очереди может иметь решающее значение для достижения хорошей производительности наших алгоритмов.

Во-первых, мы увидим некоторые важные различия между блокирующей и неблокирующей очередью. Затем мы рассмотрим некоторые реализации и лучшие практики.