Когда потребитель, реализованный в блокирующей очереди, перестает слушать сообщения

Привет, написал простую задачу производителя-потребителя, используя LinkedblockingQueue. Мой производитель записывает от 1 до 10 в очередь, а потребитель читает из очереди, используя цикл while внутри метода запуска как Ниже

    while(true){
                try {
                    System.out.println("Consumed: "+ sharedQueue.take());
                } catch (InterruptedException ex) {
}

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

Вы ответили на свой вопрос. Он блокируется до тех пор, пока сообщение не будет помещено в очередь.

user207421 25.04.2018 02:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
26
1

Ответы 1

Короткий ответ: да.

Длинный ответ: почему бы не попробовать запустить его и убедиться в этом?

Другие вопросы по теме