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

Есть ли недостатки у ConcurrentHashMap?
Мне нужен HashMap, доступный из нескольких потоков. Есть два простых варианта: использование обычного HashMap и синхронизация на нем или использование ConcurrentHashMap. Поскольку ConcurrentHashMap не блокирует операции чтения, он намного лучше...
9485 просмотров

Пример Java использования ExecutorService и PipedReader/PipedWriter (или PipedInputStream/PipedOutputStream) для потребителя-производителя
Я ищу простую реализацию производителя-потребителя на Java и не хочу изобретать велосипед. Мне не удалось найти пример, в котором используется как новый пакет параллелизма, так и любой из классов Piped. Есть ли пример использования как...
4342 просмотров

Пожалуйста, объясните состояние гонки в этой идиоме «положи-если-отсутствует».
Рассмотрим следующий код и предположим, что список является синхронизированным списком. List list = Collections.synchronizedList(new ArrayList()); if(!list.contains(element)){ list.add(element) } Я знаю, что приведенный выше фрагмент...
962 просмотров

Создание пользовательского java.util.concurrent.ForkJoinTask‹V›
В настоящее время я оцениваю различные решения параллелизма для решения бизнес-проблемы. Вариант использования сродни алгоритму «смущающе-параллельного». По сути, для одного запроса пользователя нам нужно получить данные из нескольких разных...
821 просмотров
schedule 19.05.2022

Почему ArrayBlockingQueue называется ограниченной очередью, а LinkedBlockingQueue называется неограниченной очередью блокировки?
Насколько я знаю, и связанный список, и массив могут расти без ограничений, или я ошибаюсь? Но когда я прошел через документация в Executor Service Я вижу это: Неограниченные очереди. Использование неограниченной очереди (например,...
14475 просмотров
schedule 09.04.2022

ExecutorCompletionService? Зачем он нужен, если у нас есть invokeAll?
Если мы используем ExecutorCompletionService , мы можем отправить ряд задач как Callable s и получить результат, взаимодействуя с CompletionService как queue . Но есть также invokeAll из ExecutorService , который принимает Collection...
27713 просмотров

Сканер каталогов на Java
Непрерывно сканируйте набор каталогов для набора фильтров имен файлов. Для каждого полученного фильтра имени файла обработайте файл и повторите шаги для всех Какой может быть рекомендуемый дизайн для этого в jdk 1.5, возможно, с использованием...
3702 просмотров

Вероятный ложный положительный результат от Findbugs?
Пожалуйста, обратитесь к следующему фрагменту кода (убрана лишняя часть, чтобы выделить проблемный случай): FindBugs жалуется, что " Метод не снимает блокировку на всех путях ". Это ложное срабатывание? Если нет, то как это исправить? try{...
1134 просмотров
schedule 21.07.2023

События Java - java.util.ConcurrentModificationException
Да, я уверен, что этот вопрос существует, но я попробовал ответы, и, думаю, мне нужен индивидуальный ответ. В любом случае, как следует из названия, я получаю java.util.ConcurrentModificationException . Все это вызывается в собственном...
1197 просмотров
schedule 19.03.2022

Семафор Java + Блокировка синхронизации не удерживается, когда вызывается методAcquire()
Я не могу понять значение строки ниже, которая указана по ссылке Мир Java Блокировка синхронизации не удерживается, когда вызывается методAcquire(), потому что это предотвратило бы возврат элемента в пул. Пожалуйста, помогите мне понять...
83 просмотров

Производительность сбрасываемого таймера в Java
При профилировании своего приложения я обнаружил источник частого выделения ... Я использую несколько таймеров для проверки тайм-аутов (~ 2 мс, зависит от состояния приложения). Согласно этому ответу SO , ScheduledThreadPoolExecutor...
347 просмотров

Масштабируемый способ доступа к каждому элементу ConcurrentHashMap‹Element, Boolean› ровно один раз
У меня есть 32 машинных потока и один ConcurrentHashMap<Key,Value> map , который содержит много ключей. Key определил общедоступный метод visit() . Я хочу visit() каждый элемент карты ровно один раз, используя доступную вычислительную...
847 просмотров

Безопасны ли отрицательные тайм-ауты с Future.get(long, TimeUnit)?
Безопасно ли указывать отрицательный тайм-аут для java.util.concurrent.Future.get(long, TimeUnit) ? В документации говорится Ожидает, если необходимо, не более заданного времени для завершения вычисления, а затем извлекает его результат, если...
1092 просмотров

Реализация параллельных задач Java
Моя проблема заключается в следующем: у меня может быть не более трех одновременных задач. Эти задачи могут обрабатывать от 1 до 100 заданий одновременно. У меня есть много тем, постоянно отправляющих отдельные задания, и я хочу отвечать на них как...
723 просмотров

Java ReentrantReadWriteLock — правильное использование?
У меня возникают некоторые проблемы с параллелизмом в моем веб-приложении, где выполняется запись в БД, а также могут быть одновременные чтения. При записи сначала удаляются все строки, а затем вставляются новые, поэтому есть вероятность, что чтение...
1650 просмотров

Можно ли в Java 7+ ForkJoinPool отменить задачу и все подзадачи?
Моя программа ищет решение (любое решение) проблемы с помощью подхода «разделяй и властвуй», реализованного с использованием рекурсии и RecursiveTasks : я разветвляю задачу для первой ветви разделения, затем рекурсивно выполняю вторую ветвь: если...
3592 просмотров
schedule 17.06.2022

Как запустить потребителя блокировки опроса в Java?
У меня есть некоторая служба, которая одновременно потребляет из входящей очереди и создает в некоторой исходящей очереди (где другой поток, созданный этой службой, собирает сообщения и «транспортирует» их к месту назначения). В настоящее время я...
136 просмотров

ЦП завис от 95% до 100% для автономного сервера Jetty
Я использую Jetty для запуска основного класса в качестве службы. Ниже фрагмент кода для демонстрации проблемы. Server server = new Server(8080); ResourceHandler resource_handler = new ResourceHandler();...
1320 просмотров
schedule 14.06.2023

Очередь пула потоков с уникальными задачами
Я использую ThreadPoolTaskExecutor (of spring) для асинхронного выполнения некоторых задач. Требуемая задача загрузит какой-то объект из внешней БД в мою системную память. Я использую максимальный размер пула потоков 10 и максимальный размер...
3244 просмотров

'scanAndLockForPut' в ConcurrentHashMap JDK1.7
Мой вопрос касается предложения в документе: В отличие от большинства методов, вызовы методов equals не проверяются: поскольку скорость обхода не имеет значения, мы могли бы также помочь разогреть связанный код и доступы. Я не могу понять...
105 просмотров