Я использую ehcache для кэширования java pojo, который имеет простой jash hashmap как свойство.Cache.get() возвращает глубокую копию элемента?
Нужно ли беспокоиться об исключениях модификации параллелизма в следующем случае?
thread 1:
- obj1 = cache.get(keyx)
- obj1.hashmap.put(x, y)
- cache.put(keyx, obj1)
thread 2:
- obj1 =cache.get(keyx)
- for(akey: obj1.hashmap.keys){}
Я подозреваю, я не нужно использовать нить безопасного осуществления для HashMap и в дополнение сделать нить моей Pojo в безопасности?
Или cache.get() дает мне «глубокую копию» элемента в кеше и могу ли я просто что-либо сделать с ключом элемента и значением, не беспокоясь о параллелизме?
вы можете уточнить это, как это зависит от ситуации? Я думаю, что он вернет тот же объект, а не копию ... – eis
Это зависит, если объект был сериализован на дисковый магазин и удален из запоминающего устройства, то это не будет тот же экземпляр объекта. Вот почему я сказал: «Это зависит». – TinusSky
Да, в случае дискового магазина. Однако, я думаю, если он находится в хранилище памяти, это будет тот же объект, или? – eis