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

Как узнать, удерживается ли ReadLock ReentrantReadWriteLock до уровня API 9
Я заметил, что Java ReentrantReadWriteLock отличается в версиях API ‹9 и> = 9. Для меня особенно важно то, что метод getReadHoldCount() недоступен в старой версии. Теперь мой вопрос: как определить, удерживается ли ReadLock текущим потоком без...
216 просмотров

РеэнтерантныйReadWriteLock. чтение и запись получают приоритет
Я исследую ReentrantReadWriteLock фрагмент из java-документа: Поток не получит блокировку чтения до тех пор, пока самый старый в настоящее время ожидающий поток записи не получит и не освободит блокировку записи. Таким образом, как я...
1794 просмотров

Потоки блокировки чтения и записи, ожидающие блокировки чтения
У меня есть многопоточная программа, в которой я создал экземпляр ReadWriteLock с истинной справедливой стоимостью. Это приложение перестало отвечать. Ниже приведены наши выводы на основе дампа потока. Один поток получил блокировку чтения и...
463 просмотров

Реализован ли ReentrantReadWriteLock как спин-блокировка?
Как работает ReentrantReadWriteLock ? Это спин-блокировка? Вопрос исходит от Elasticsearch, когда он показывает java.lang.ThreadLocal$ThreadLocalMap.expungeStaleEntry(Unknown Source) java.lang.ThreadLocal$ThreadLocalMap.remove(Unknown...
874 просмотров

Проверка владения readLock в `ReentrantReadWriteLock`
У меня есть несколько тесно связанных вопросов, которые возникли при попытке использовать ReentrantReadWriteLock для управления доступом к довольно сложной структуре данных, которая имеет ряд различных операций чтения и записи. Согласно примерам...
574 просмотров

ReentrantReadWriteLock зависает при использовании в ConcurrentHashMap::compute()
TL;DR. В моем приложении многие потоки захватывают ReentrantReadWriteLock в режиме READ, пока они вставляют записи в ConcurrentHashMap с помощью метода calculate(), и освобождают блокировку READ после завершения lamdba, переданного в calculate()....
264 просмотров

ConcurrentHashMap и ReentrantReadWriteLock
У меня есть один поток, который обновляет данные в Map , и несколько потоков, которые читают эти данные. Теперь мой код выглядит так: public class Updater { private ConcurrentMap<String, Integer> valuesMap = new...
164 просмотров