番石榴的APIs爲AbstractLoadingCache
和CacheLoader
充滿單詞「線程安全」和「異步」。如何使用LoadingCache製作異步裝載器<K,V>?
不幸的是,我無法從API推導出如何創建異步延期加載程序。
例如,他們有一個樣品
CacheLoader<Key, Graph> loader = new CacheLoader<Key, Graph>() {
public Graph load(Key key) throws AnyException {
return createExpensiveGraph(key);
}
};
LoadingCache<Key, Graph> cache = CacheBuilder.newBuilder().build(loader);
現在我要檢查,如果一些關鍵值包含在緩存中,如果YES,然後繪製圖表。但是,如果否,然後繪製存根,啓動加載並繼續工作(GUI)。然後,當加載完成時,繪製圖形。
可能嗎?
大概''CacheLoader'支持異步_reloading_ - 當已經計算出一個值時,你可以讓你的'Cache'繼續返回舊的結果,而新的結果是異步計算的。但加載初始值是同步完成的。 – 2014-10-19 18:22:07