2014-04-15 1 views
3

아래 코드를 사용하여 캐시의 요소를 업데이트합니다.Ehcache 업데이트 요소

Cache cache = manager.getCache("myCache"); 
cache.put(new Element("k1", "v1")); 
//updates "k1" 
cache.put(new Element("k1", "v2")); 

이 스레드는 안전합니까? 아니면 스레드 안전을 위해이 작업을 수행해야합니까? 또한 성능 측면에서 볼 때 모든 업데이트로 인해 새 요소가 생성됩니다. 이것은 좋은 접근 방법입니까?

감사

답변

4

를이 캐시 항목을 업데이트 할 수있는 기본 API는 다음 업데이트 된 값을 같은 키에 대한 풋을한다. 이렇게하려면 실제로 을 새로 만들어야합니다.

스레드 안전성과 관련하여 Ehcache 작업은 의도적으로 스레드로부터 안전합니다.

하지만 스레드 보안에 대한 사용자의 컨텍스트와 요구 사항이 무엇인지 잘 모르겠습니다.

두 스레드 간의 처리를 포함하여 처리 중에 언제라도 다른 스레드가 동일한 키를 업데이트하지 못하도록하지 마십시오. 두 번째 put 키의 값이 v1 인 경우 k1 만 업데이트되도록하려면 제공된 Compare and Swap Operations 또는 explicit locking을 확인해야합니다.