ConcurrentHashMap
в Java предлагает чтения для одновременного обновления.Компромисс в этом заключается в том, что результаты чтения ограничены, чтобы отразить только обновление последнее завершенное , когда началось чтение, поэтому оно не указано для отражения последнего состояния элементов.
Однако модель памяти Java AFAIK, без какой-либо формы синхронизации между потоками чтения и записи, обновления потока записи могут не стать видимыми потоку чтения даже после произвольного периода времени.
УчитываяПотоки чтения не блокируются потоками записи. Что служит основанием для гарантии того, что последнее завершенное обновление будет доступно для потока чтения?
Я мог думать только о чем-то, похожем на строки алгоритма сравнения и обмена, но не мог проверить это в исходном коде этой библиотеки.