guavas CacheBuilder
을 사용하고 싶지만이를 구현하는 방법을 명시 적으로 찾을 수 없습니다.guava CacheBuilder를 사용하는 방법?
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
.maximumSize(1000)
.build(
new CacheLoader<Key, Graph>() {
public Graph load(Key key) throws AnyException {
return createExpensiveGraph(key);
}
});
질문 :
워드 프로세서는 다음 코드를 진술이 createExpensiveGraph(key)
방법은 무엇인가? 이 방법은 HashMap<Key, Value>
매핑을 반환하는 방법입니까? key
값으로 무엇을해야합니까?
또는이 방법으로 List<String>
을 반환 할 수도 있습니다. 어떤 식 으로든 key
값을 사용할 필요가 없습니까?
Graph get(Key key) {
Graph result = get(key);
if(null == result) {
result = createNewGraph(key);
put(key, result);
}
return result;
}
플러스는 멀티 스레드 환경에서이 코드를 사용할 때 당신이 가지고있는 일반적인 동기화 문제 : 캐시의
CacheLoader의 API를보고 메서드를 사용하는 이유를 명확히 설명하는 메서드를로드합니까? http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/CacheLoader.html#load(K) createExpensiveGraph가 대신 GraphMask 개체를 반환합니다. –
그것은 결과를 캐시하려고하는 모든 기능입니다. –