Я пишу программу, которая широко использует большие HashMaps. Он многопоточный, поэтому я использовал блокировки чтения-записи при доступе к нему. Однако у него есть специальное свойство, которое я хотел бы использовать.
После того, как данные «помещены» в HashMap, эти данные никогда не изменяются. Когда-либо. Всякий раз, когда вносится изменение в состояние этой структуры данных, она фактически просто создает новое «поколение» структуры, оставляя старое нетронутым.
То есть, безопасно ли читать значение из HashMap в то время, когда другой поток записывает значение, зная, что другой поток никогда не будет записывать значение, которое вы читаете ? Есть ли какая-то простая структура хеш-таблицы, которая даст мне такую гарантию?