ConcurrentHashMap нужен для совместных конкурентных операций над map. Race condition — зависимость корректности от чередования действий; deadlock — цикл ожиданий, не позволяющий участникам продолжить.
Когда нужно использовать ConcurrentHashMap вместо HashMap? Что такое race condition и deadlock?
ConcurrentHashMap нужен для совместных конкурентных операций над map. Race condition — зависимость корректности от чередования действий; deadlock — цикл ожиданий, не позволяющий участникам продолжить.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
ConcurrentHashMap нужен для совместных конкурентных операций над map. Race condition — зависимость корректности от чередования действий; deadlock — цикл ожиданий, не позволяющий участникам продолжить.
HashMap допустим без совместного изменения или под внешней синхронизацией. ConcurrentHashMap защищает свои операции, но не произвольную последовательность get-then-put: используйте compute/merge/putIfAbsent по смыслу. Изменяемые значения и инварианты между несколькими ключами требуют отдельного решения. Потокобезопасная коллекция не делает всё приложение потокобезопасным.