я уже сомнений синхронизации, где результат кэширования метод вызова, псевдокод, как следуетО синхронизации
Cache cache = cacheMap.get("cacheKey"); // get implemented synchronization
if(cache!=null){
return cache;
}
result = invokeLongTimeMethod(); //this method is thread-safe
map.put("cacheKey",result); // put implemented synchronzization as well.
invokeLongTimeMethod() должны быть обернуты с помощью ключевого слова() синхронный режим? как указано ниже
sychronized(this){
result=invokeLongTimeMethod(); //notice: this method can be invoked more than one time
}
Я думаю, что он не добавляет синхронизированный код, который, как представляется, имеет лучшую производительность.
Пожалуйста, задайте ясный, конкретный вопрос. – Manu