private ConcurrentHashMap<Long, HashMap<Long, Long>> topLevelMap;
потом ниже по коду с ними происходит
topUserMap = updateMap(userId, levelId, result, topUserMap);
topLevelMap = updateMap(levelId, userId, result, topLevelMap);
вот такое. Подскажите плз, будет ли такое использование thread safe мапы действительно thread safe? или по-хорошему, поля надо делать final и не выпендриваться? Заранее спасибо
Выглядит необоснованно запутанно.
Присваивание не-volatile ссылок не сильно предсказуемо (хотя и thread safe). Возникает больше вопросов, на мой взгляд.
мне еще подсказали, что внутренние мапы тоже должны быть thread safe
Хорошая книга по теме Java Concurrency in Practice https://g.co/kgs/TcU4vz
Обсуждают сегодня