Вопросы по теме 'java.util.concurrent'

Однопоточная обработка задачи без постановки в очередь дальнейших запросов
У меня есть требование, чтобы задача выполнялась асинхронно, отбрасывая любые дальнейшие запросы, пока задача не будет завершена. Синхронизация метода просто ставит задачи в очередь и не пропускает их. Сначала я думал использовать...
5168 просмотров

Реализация BlockingQueue: в чем разница между SynchronousQueue и LinkedBlockingQueue
Я вижу эти реализации BlockingQueue и не могу понять различий между ними. Мой вывод на данный момент: Мне никогда не понадобится SynchronousQueue LinkedBlockingQueue гарантирует, что FIFO, BlockingQueue должен быть создан с параметром...
27747 просмотров

Уведомление о задержке получения блокировки в Java
У нас есть вариант использования, когда нам нужно получить блокировку и отправить уведомление, если получение блокировки занимает более 5 минут. Мы все еще должны ждать блокировки навсегда. Мы используем повторные блокировки, и lock.tryLock(5,...
186 просмотров
schedule 30.12.2022

ReentrantReadWriteLock зависает
есть идеи, почему этот конструктор зависает на неопределенный срок? Я пытаюсь создать потокобезопасный синглтон. private RWLockedSingleton() { lock.writeLock().lock(); System.out.println("we're done!"); isComplete = true;...
898 просмотров

как я могу обработать CancellationException в параллельном программировании Java?
Я использую пакет java.util.concurrent для создания параллельной программы. У меня есть 2 темы: thread-1, который вызывает метод-1 веб-сервиса, и thread-2, который вызывает метод webservice-2. Я указываю тайм-аут выполнения потока -...
762 просмотров
schedule 10.08.2022

Как определить, когда все задачи в конвейере выполнены в одной службе Java Executor
У меня есть конвейер задач, которые нужно выполнить с файлами, каждый отдельный тип задачи выполняется внутри другой службы-исполнителя. После инициализации каждой службы-исполнителя я запускаю первую задачу, она гарантированно не завершится, пока не...
683 просмотров

Пул потоков, в котором работники одновременно являются производителями и потребителями
У меня неограниченная очередь заданий, которые можно обрабатывать асинхронно. Обработка каждого задания может запускать или не запускать создание новых заданий для этой очереди. Я хотел бы, чтобы пул из нескольких рабочих потоков брал элементы из...
1623 просмотров

Блокировки чтения и записи в ReentrantReadWriteLock как-то связаны?
Пожалуйста, объясните мне больше контракта. Я не могу понять, связаны ли как-то две блокировки, содержащиеся в ReentrantReadWriteLock ? Или это просто связка из двух нормальных замков?
2942 просмотров

Почему этот код приводит к исключению invalidMonitorState?
Код ниже пытается вставить случайное значение в циклическую очередь и удалить его. Однако есть некоторые проблемы с синхронизацией. Я знаю, что могу использовать процедуры более высокого уровня, и я собираюсь сделать это для производственного кода,...
1897 просмотров
schedule 08.06.2022

Исключение одновременной модификации с ArrayList
У меня проблема с ConcurrentModificationException . У меня есть класс ArrayList из Complex , который я определил. Я добавил два Complex es и пытаюсь выполнить цикл для каждого , но получаю ConcurrentModificationException . Однако, когда я...
336 просмотров

Ограничение количества потоков и параллелизма Java
Я не смог найти пример этого конкретного случая с использованием последних параллельных процедур JAVA. Я планирую использовать threads для обработки элементов из открытой очереди, которая может содержать от 0 до тысяч запросов. Я хочу ограничить...
1306 просмотров

Использование atomic для создания уникального идентификатора
class ABC{ private static Random random = new Random(); private static AtomicLong uniqueLongId = new AtomicLong(System.currentTimeMillis()); public static long getUniqueLongId(){ long id = uniqueLongId.incrementAndGet();...
2317 просмотров

Java ScheduledExecutorService производитель\потребитель
У меня есть следующий проект: Веб-приложение на основе Spring (3.2) (Tomcat 7), в фоновом режиме у меня есть несколько задач. У меня есть очередь с некоторой информацией для обработки. Эта очередь периодически обновляется (но только когда она...
684 просмотров

AtomicInteger.incrementAndGet() против AtomicInteger.getAndIncrement()
Если возвращаемое значение не представляет интереса, есть ли какая-либо (даже нерелевантная на практике) разница между AtomicInteger.getAndIncrement() и AtomicInteger.incrementAndGet() , когда возвращаемое значение игнорируется? Я думаю о...
25125 просмотров
schedule 16.06.2022

ExecutorService.submit(‹callable›) занимает больше времени?
Я пытаюсь понять утилиты в пакете java.util.concurrent и узнал, что мы можем отправлять объекты callable в ExecutorService , который возвращает Future , который заполняется значением, возвращаемым callable , после успешного завершения задачи в...
4885 просмотров
schedule 22.04.2023

Умная асинхронная перерисовка в Java
У меня есть вариант использования, связанный с проблемой графического интерфейса, который я хотел бы представить вашей прозорливости. Случай использования У меня есть графический интерфейс, который отображает результат вычислений в зависимости...
1505 просмотров

Почему CopyOnWriteArrayList.get не нуждается в синхронизации?
только что взглянул на класс CopyOnWriteArrayList, и мне стало интересно, почему его метод get(...) не нуждается в синхронизации. Методы add(...) и set(...) изменяют базовый массив в блоке мьютекса с помощью ReentrantLock. Но get(...) просто...
827 просмотров

Исполнители — потребность в LinkedBlockingQueue
Когда мы говорим об обработке асинхронных событий с помощью службы Executors, почему при создании нового фиксированного пула потоков используется LinkedBlockingQueue? Приходящие события вообще не зависят друг от друга, так зачем использовать очередь,...
566 просмотров

Как достигается атомарность в классах, определенных в пакете java.util.concurrent.atomic?
Я просматривал исходный код java.util.concurrent.atomic.AtomicInteger , чтобы узнать, как достигается атомарность с помощью атомарных операций, предоставляемых классом. Например, источник метода AtomicInteger.getAndIncrement() выглядит следующим...
1746 просмотров

Список всех запущенных/поставленных в очередь потоков в ThreadPoolTaskExecutor
Я использую ThreadPoolTaskExecutor весной для планирования своих задач. Есть ли способ получить список или что-то из каждого запущенного и поставленного в очередь потока этого исполнителя/пула задач?
6890 просмотров