Ответ
Для потокобезопасной вставки в HashMap используйте ConcurrentHashMap или синхронизацию.
ConcurrentHashMap (рекомендуется):
val concurrentMap = ConcurrentHashMap<String, Int>()
concurrentMap.put("key", 42) // потокобезопасно
Синхронизация (если ConcurrentHashMap не подходит):
val map = HashMap<String, Int>()
val lock = Any()
synchronized(lock) {
map.put("key", 42) // блокировка на время вставки
}
Важно:
ConcurrentHashMapэффективнее блокировок для частых операций.- Обычный
HashMap+synchronizedгарантирует безопасность, но снижает производительность.