Увеличивает ли перефразирование в ConcurrentHashMap в Java количество сегментов? - PullRequest
4 голосов
/ 24 июля 2011

увеличивает ли перефразирование число сегментов? или уровень параллелизма изменяется во время перефразирования CHM?

Если нет (скорее всего), то почему это поведение дается в java, так как в CHM увеличивается количество записей, больше потоков будет обращаться к одному и тому же сегменту и может потребовать более высокий уровень параллелизма?

РЕДАКТИРОВАТЬ: Я думаю, если бы была предоставлена ​​функциональность увеличения сегментов, потребуется блокировка на все сегменты. это причина?

1 Ответ

0 голосов
/ 24 июля 2011

Количество сегментов не меняется по мере увеличения размера ConcurrentHashMap.Количество потоков, которые могут получить доступ к коллекции, не так важно, как число активных потоков, обращающихся к карте.Если у вас 4 ядра, то это максимум 4, даже если все, что они делают - это получают доступ к карте и больше ничего не делают.Это крайний пример.

На самом деле, вы имеете тенденцию иметь менее одного потока, обращающегося к карте одновременно, и иногда 2-4 потока, обращающихся к карте, что при использовании сегментов помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...