我试图实现一个回写缓存。我正在尝试使用软引用,但是我在执行后置回写时遇到了问题,因为引用在添加到gcQueue之前已经清除,因此我无法访问referent对象。
解决办法?
发布于 2010-11-09 10:31:10
你可以试试番石榴 地图绘制者。
示例:
final ConcurrentMap<Long, Integer> cache = new MapMaker()
.softValues().expiration(20,TimeUnit.MINUTES)
.makeComputingMap(new Function<Long, Integer>() {
@Override
public Integer apply(Long arg0) {
return null;
}
});所以关于MapMaker :的问题
备选方案:
使用供应商类的memoizeWithExpiration,这也是番石榴库的一部分。
https://stackoverflow.com/questions/4130684
复制相似问题