मैं guavas 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
मान के साथ क्या करना है?
या क्या मैं key
वैल्यू का उपयोग किसी भी तरीके से नहीं करने के लिए इस विधि में List<String>
वापस कर सकता हूं?
Graph get(Key key) {
Graph result = get(key);
if(null == result) {
result = createNewGraph(key);
put(key, result);
}
return result;
}
प्लस सामान्य तुल्यकालन मुद्दों है कि आप जब आप एक मल्टी-थ्रेडेड वातावरण में इस कोड का उपयोग करें:
कैशलोडर और लोड विधि का एपीआई देखें जो विधि का उपयोग क्यों किया जाता है इसका स्पष्ट अर्थ देता है? http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/CacheLoader.html#load(K) createExpensiveGraph हैश मैप वापस नहीं करता है इसके बजाय ग्राफ़ की ऑब्जेक्ट लौटाता है। –
यह वही कार्य है जिसका आप परिणाम कैश करने की कोशिश कर रहे हैं। –