番石榴的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