哪些 Guava 类适合线程安全缓存?我使用组合键,它是动态构建的,所以 softKeys() 没有意义,对吧?我在某处看到 ConcurentLinkedHashMap,这是要走的路吗?它已经在最近的版本中了吗?抱歉,提问方式很混乱……
Update
这个问题已经很老了,浏览他的答案可能会浪费时间。长期以来有一个CacheBuilder http://google.github.io/guava/releases/22.0/api/docs/com/google/common/cache/CacheBuilder.html这是要走的路。
版本 10.0 的新 Guava 库引入了Cache https://google.github.io/guava/releases/22.0/api/docs/com/google/common/cache/Cache.html专为缓存设计的接口。
它配备了CacheBuilder https://google.github.io/guava/releases/22.0/api/docs/com/google/common/cache/CacheBuilder.html,这类似于MapMaker https://google.github.io/guava/releases/22.0/api/docs/com/google/common/collect/MapMaker.html以及所有的缓存方法MapMaker
将在版本 11 中删除。
文档中的示例:
Cache<Key, Graph> graphs = CacheBuilder.newBuilder()
.concurrencyLevel(4)
.weakKeys()
.maximumSize(10000)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(
new CacheLoader<Key, Graph>() {
public Graph load(Key key) throws AnyException {
return createExpensiveGraph(key);
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)