Как ConcurrentHashMap удастся поместить, удалить и получить запись карты (ключ, значение) для одного и того же сегмента в одно и то же время для нескольких потоков в Java? - PullRequest
0 голосов
/ 09 февраля 2020

Предположим, есть три потока, которые хотят получить доступ к одному и тому же объекту ConcurrentHashMap с Java (Java 7). Эти три потока имеют операции как положить, удалить и получить соответственно. Не могли бы вы помочь мне понять, как ConcurrentHashMap удастся поместить, удалить и получить запись карты (ключ, значение) для одного и того же сегмента в одно и то же время для нескольких потоков в Java (Java 7) ? Пожалуйста, укажите, есть ли какое-либо обновление в Java 8 для того же.

Редактировать:

Что означает сегмент в ConcurrentHashMap согласно Java 7?

Уровень параллелизма, который разрешен во время операций обновления, может быть установлен необязательным аргументом конструктора concurrencyLevel (по умолчанию 16) [ ConcurrentHashMap (int initialCapacity, float loadFactor, int concurrencyLevel ) ], который используется в качестве подсказки для внутреннего определения размера, для внутреннего разделения ConcrrentHashMap, такой раздел обычно называется сегментом. Каждый сегмент управляет своим собственным HashTable. ConcurrentHashMap поддерживает список из 16 сегментов по умолчанию.

Спасибо и С уважением.

...