Во-первых, я опишу, что хочу, а затем я расскажу о возможностях, которые я рассматриваю. Я не знаю, что лучше, поэтому мне нужна помощь.Реализация сейфа для хэш-карты
У меня есть карта хэша, на которой я читаю и записываю операции с Servlet
. Теперь, поскольку этот Servlet
находится на Tomcat, мне нужна карта хэша, чтобы быть потокобезопасной. В принципе, когда он записывается, ничто другое не должно писать ему, и ничто не должно его читать.
Я видел ConcurrentHashMap
, но заметил, что его метод получения не является потокобезопасным. Затем я видел блокировки и что-то называемое синхронизированным.
Я хочу знать, какой из них является самым надежным способом.
Каким образом ConcurrentHashMap.get не является потоковым? И какой уровень детализации вы ищете? Под «когда оно написано» вы имеете в виду, что будут выполняться * множественные операции ввода или достаточно, чтобы каждый из них был атомарным? –
Увидев документ API, я думал, что он не является потокобезопасным. Для хэш-карты может быть многопозиционная операция, если, скажем, 3 человека решили сделать одно и то же действие. – pratnala
@pratnala Тот факт, что он позволяет выполнять параллельные операции, не делает его безопасным для потоков. – assylias