gpt4 book ai didi

java - 如何使用 guava CacheBuilder?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:40 25 4
gpt4 key购买 nike

我想用 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 有什么关系?值(value)?

或者我也可以只返回一个 List<String>在这种方法中不必使用 key有什么值(value)?

最佳答案

缓存的思路是你通常会遇到这样的问题:

Graph get(Key key) {
Graph result = get( key );
if( null == result ) {
result = createNewGraph( key );
put( key, result );
}
return result;
}

加上在多线程环境中使用此代码时常见的同步问题。

Guava 为您制作样板;您只需实现 createNewGraph()。 Java 的工作方式意味着您必须实现一个接口(interface)。在这种情况下,接口(interface)是 CacheLoader

如果您认为整个缓存有点像 map ,那么 CacheLoader 就是一个回调,只要在 map 中找不到某个键,它就会被调用。加载程序将获取 key (因为它通常包含有用的信息来创建该 key 所期望的对象)并且它将返回 get() 将来应该返回的值。

关于java - 如何使用 guava CacheBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19704904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com