Вопросы по теме 'blockingqueue'

Java: производитель / потребитель, использующий BlockingQueue: ожидание потока-потребителя () до тех пор, пока другой объект не будет поставлен в очередь
Недавно у меня возникли проблемы, связанные с потоками, с потребителем, который берет баллы. Вот оригинал, который отлично работает, за исключением того, что занимает много процессора, постоянно проверяя очередь. Идея состоит в том, что cuePoint...
4966 просмотров

Как правильно использовать java-уведомление при реализации блокировки очереди
Я пытаюсь понять многопоточные конструкции Java, и я пытаюсь написать простую реализацию блокировки очереди. Вот код, который я написал: class BlockingBoundedQueue<E> { @SuppressWarnings("unchecked")...
4748 просмотров

ExecutorService против ThreadPoolExecutor с использованием LinkedBlockingQueue
Я работаю над многопоточным проектом, в котором мне нужно создать несколько потоков для измерения сквозной производительности моего клиентского кода, поскольку я выполняю тестирование нагрузки и производительности. Итак, я создал приведенный ниже...
47172 просмотров

Как corePoolSize = 0 работает для ThreadPoolExecutor?
Определение ExecutorService.newCachedThreadPool() : public static ExecutorService newCachedThreadPool(ThreadFactory threadFactory) { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS,...
679 просмотров

Изменяемая очередь блокировки Java
Поэтому я использую BlockingQueue фиксированного размера [ArrayBlockingQueue] в приложении типа производитель/потребитель, но я хочу, чтобы пользователь мог изменять размер очереди на лету. Проблема в том, что нет реализации BlockingQueue,...
4335 просмотров
schedule 23.03.2022

Как возобновить мой поток, который находится в процессе блокировки из-за linkedBlockingQueue.take()
У меня есть поток-производитель, который будет продолжать вставлять значения в linkedBlockingQueue и иметь несколько потоков-потребителей, которые одновременно будут принимать() из этой linkedBlockingQueue. Мое условие для них, чтобы они продолжали...
59 просмотров
schedule 08.04.2022

Обработка DispatchGroup [слабая самооценка] во вложенном уведомлении
У меня две асинхронные функции. Мне нужно запустить вторую функцию на основе первого вывода и запустить третью функцию после завершения второй. Я сделал это вот так. Это правильный способ сериализации? И как справиться со слабой ссылкой на себя?...
1194 просмотров

Почему ArrayBlockingQueue не блокируется, когда очередь заполнена
У меня есть простой тест для ArrayBlockingQueue, как показано ниже: public class TestQueue { static class Producer implements Runnable { private ArrayBlockingQueue<Integer> queue; private int index; public...
55 просмотров

BlockingQueue и putAll
Кто-нибудь знает, почему у java BlockingQueue нет метода putAll? Есть ли проблема с таким методом? Есть ли хорошие способы обойти эту проблему без необходимости полностью повторно реализовывать BlockingQueue?
684 просмотров
schedule 20.06.2022

Java BlockingQueue take() против poll()
При потреблении значений из очереди в бесконечном цикле - что было бы более эффективно: 1) Блокировка в очереди до тех пор, пока значение не будет доступно через take() while (value = queue.take()) { doSomething(value); } 2) Сон в течение...
36820 просмотров
schedule 30.07.2022

Действительно ли Boost_lockFree_SPSC_queue имеет переменный размер и не теряет данных?
Привет, я планировал использовать очередь Boost SPSC. У меня должен быть прослушиватель, который всегда прослушивает входящие сообщения, как только он получит, он поместит сообщение в очередь и вернется, чтобы снова дождаться новых сообщений. И есть...
253 просмотров
schedule 08.08.2022

BlockingQueue - один производитель несколько потребителей
У меня три потока. Поток 1 (T1) - производитель, который генерирует данные. Каждый из потоков 2 и 3 (T2, T3 соответственно) ожидает обработки данных T1 в отдельных циклах. Я думаю о том, чтобы разделить BlockingQueue между потоками и заставить T2 и...
800 просмотров

Есть ли способ заставить ros::spinOnce() вызывать определенное количество обратных вызовов из очереди обратных вызовов?
Я пишу программу в ROS, которая должна выполнять определенные вычисления после каждой функции обратного вызова. Моя функция обратного вызова в основном подписывается на тему и устанавливает значение переменной, которая используется для выполнения...
1615 просмотров
schedule 29.09.2022

ScheduledExecutorService с переменной задержкой
Предположим, у меня есть задача, которая извлекает элементы из java.util.concurrent.BlockingQueue и обрабатывает их. public void scheduleTask(int delay, TimeUnit timeUnit) { scheduledExecutorService.scheduleWithFixedDelay(new Task(queue), 0,...
16395 просмотров

Декоратор BlockingQueue, регистрирующий удаленные объекты
У меня есть BlockingQueue реализация, которая используется в ситуации производитель-потребитель. Я хотел бы украсить эту очередь, чтобы каждый объект, взятый из нее, регистрировался. Я знаю, как будет выглядеть простая реализация: просто...
252 просмотров

Сомнения в коде многопоточности с использованием ArrayBlockingQueue и мьютекса
Я пытаюсь написать многопоточный код. А если серьезно, я не могу понять, с чего начать. У меня тоже голова раскалывается. Пожалуйста помогите. Моя задача Существует одна очередь длины 1, известная как pending_tasks , которая содержит...
282 просмотров
schedule 08.10.2023

Потоки Android с очередью против Handler/Looper: какой из них эффективнее?
У меня есть ситуация производитель-потребитель, когда я хочу выбрать между двумя механизмами для ее реализации. Это случай аудиозаписи/кодирования: производитель постоянно опрашивает микрофон устройства на наличие записанного звука и, когда доступен...
1074 просмотров

Структура данных для буферизации закодированного звука в Android
У меня есть TCP-клиент, который получает аудио (закодированные) данные через сокет. Я должен хранить полученные данные в каком-то буфере и предоставлять декодеру по запросу декодера по частям. Данные представлены в формате byte[], а размер массива...
315 просмотров
schedule 31.03.2023

ArrayBlockingQueue: одновременная установка и получение
Почему ABQ не был реализован способом LinkedBlockingQueue. Мы можем использовать AtomicInteger, чтобы отслеживать количество треков в ABQ так же, как это делает LBQ. Мы также можем использовать Два Замка для ABQ. Я натыкаюсь на аналогичный вопрос...
2309 просмотров

Как удалить элементы из очереди в Java с помощью цикла
У меня есть такая структура данных: Почтовый ящик BlockingQueue = new LinkedBlockingQueue(); Я пытаюсь сделать это: for(Mail mail: mailbox) { if(badNews(mail)) { mailbox.remove(mail); } } Очевидно, что...
26735 просмотров
schedule 01.05.2023