Описание тега java.util.concurrent

Java package which contains utility classes commonly useful in concurrent programming. This package includes a few small standardized extensible frameworks, as well as some classes that provide useful functionality and are otherwise tedious or difficult to implement.
1 ответ

LongAdder Striped64 был неконтролируемая деталь реализации

Это вопрос не о том, как работает LongAdder, а о интригующей детализации, которую я не могу понять. Вот код из Striped64 (я вырезал некоторые части и оставил соответствующие части для вопроса): final void longAccumulate(long x, LongBinaryOperator fn…
6 ответов

Параллельная карта с фиксированным размером

Мне нужна карта со следующими требованиями: Это должно быть в высокой степени одновременно. put(), get() а также remove() методы могут вызываться несколькими потоками одновременно. Он должен быть фиксированного размера. Если размер HashMap достигает…
1 ответ

ScheduledThreadPoolExecutor выполняет неправильное время из-за несоответствия времени процессора

Я планирую задачу, используя объект ScheduledThreadPoolExecutor. Я использую следующий метод: public ScheduledFuture<?> schedule(Runnable command, long delay,TimeUnit unit) и установите задержку на 30 секунд (задержка = 30 000 и единица измере…
30 апр '10 в 15:55
1 ответ

Главный поток java управляет запуском других потоков

Я бы описал мою проблему: Я разрабатываю приложение для создания документов (документы Office) в асинхронном режиме, поэтому я использую потоки из-за ограничений производительности я должен запускать только 2 потока одновременно, Чтобы не блокироват…
4 ответа

Метод ThreadFactory newThread() вызывается только один раз для каждого вызова submit() в ThreadPoolExectutor

Я пытаюсь назначить номер для каждого из MyRunnable представлен ThreadPoolExecutor но мне не удалось. Мой фрагмент кода: import java.util.concurrent.*; class SimpleThreadFactory implements ThreadFactory { String name; static int threadNo = 0; public…
3 ответа

Callable выполняется последовательно?

Всякий раз, когда я запускаю свою программу, реализующую функцию callable, я получаю вывод в последовательной форме. Мол, вот моя программа: package com.handson; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQue…
2 ответа

Является ли Set of ConcurrentHashMap потокобезопасным в foreach?

Безопасно ли выполнять операции foreach, add, remove, size в разных потоках со следующим набором? private final Set<MyObject> myConcurrentHashSet = ConcurrentHashMap.newKeySet(); Т.е. мне не нужно получать максимальную точность в операциях for…
4 ответа

Я не понимаю, почему неизменяемые объекты в Java всегда наследуют потокобезопасность

Я читаю книгу "Эффективная Java" и главу, посвященную минимизации изменчивости. Пункт 15. Возможно, у меня возникли проблемы с пониманием концепции безопасности потоков, так как я не очень опытен в параллелизме. Могу ли я получить пример, который ил…
16 май '14 в 02:34
1 ответ

java.util.ConcurrentModificationException в игровом цикле Android

Я использую холст, перемещая объекты на экране, когда объект попадает на левую сторону холста (x=0), создается другой объект того же типа и начинает двигаться на экране. Все работает отлично, несколько объектов создаются и начинают двигаться по экра…
3 ответа

Как решить findbug Последовательность обращений к java.util.concurrent.ConcurrentHashMap может быть не атомарной

Привет, я получаю сообщение об ошибке "Последовательность обращений к java.util.concurrent.ConcurrentHashMap может быть не атомарным", когда я выполняю поиск ошибок в моем проекте для приведенного ниже кода. public static final ConcurrentHashMap<…
1 ответ

Атомность комбинированного putIfAbsent и заменить на ConcurrentMap

Это относится к принятому решению вопроса, поднятого в этой теме public void insertOrReplace(String key, String value) { for (;;) { String oldValue = concurrentMap.putIfAbsent(key, value); if (oldValue == null) return; final String newValue = recalc…
2 ответа

Есть ли BlockingMap как BlockingQueue в Java?

Я хотел бы иметь одну структуру данных BlockingMap, которая очень похожа на BlockingQueue. Метод take из BlockingQueue будет ожидать там, пока элемент не станет доступен. Я хотел бы, чтобы метод get BlockingMap ожидал, пока соответствующий ключ не с…
06 янв '14 в 08:38
0 ответов

Также имеется исключение ConcurrentModificationException для CopyOnWriteArrayList

Я использую следующий код, чтобы создать CopyOnWriteArrayList, изменить элементы, находящиеся в нем, а затем распечатать элементы. Я не могу понять, почему я получаю ConcurrentModificationException, когда я использую CopyOnWriteArrayList. public cla…
2 ответа

Может ли метод `ConcurrentHashMap::get` вернуть" грязное "значение kkkjjjjj?

При записи значения через put метод, если другой поток пытается прочитать значение для того же ключа, что получит поток чтения? Старое значение, новое значение или какое-то "мусорное" значение?
4 ответа

Вызывается с помощью цикла while

Мне нужно предоставить код, который с помощью ExecutorService, Callable и Future будет выполнять некоторые вычисления и печатать частичные результаты до тех пор, пока не будет достигнуто определенное условие. Первое, что приходит мне в голову - это …
11 май '17 в 10:31
2 ответа

Java - Преобразование ожидания / уведомления в java.util.concurrent

У меня возникают трудности с преобразованием устаревших уведомлений о ожидании с ложными ожиданиями в API java.util.concurrent Первая проблема: что использовать, Future или CountdownLatch или CyclicBarrier в соответствии с этим вопросом Второй вопро…
2 ответа

Итерация ConcurrentHashmap

Мой текущий код выполняет итерацию ConcurrentHashMap с использованием цикла Java 5 для каждого. В приведенном ниже коде, поскольку неявный итератор является отказоустойчивым, я не сталкиваюсь с ConcurrentModificationException. Map<Long,String>…
1 ответ

Разница между Phaser и CyclicBarrier

Я наткнулся на сомнение относительно различий между утилитами CyclicBarrier и Phaser в параллельном пакете Java. Я понимаю, что CyclicBarrier позволяет группе потоков ждать, пока все потоки не достигнут определенной точки. Phaser также делает то же …
27 мар '18 в 07:30
0 ответов

Обработка поставленных в очередь задач в ScheduledExecutorService при завершении работы

У меня есть приложение в Java, которое использует java.util.concurrent ScheduledExecutorService, Одним из способов использования является планирование задачи scheduledExecutorService.schedule(() -> taskToBeScheduled(parameter), timeToSchedule, MI…
29 ноя '18 в 12:15
3 ответа

Как обрабатывать параллельные обновления и чтения в POJO, хранящемся на карте

Я планирую реализовать простой кэш в памяти для поиска с использованием CHM, который работает не более чем с двумя параллельными потоками. Один поток выполняет итерацию и обновление CHM с использованием итератора, а второй поток читает значения из к…