编程语言
首页 > 编程语言> > java-当值返回键时如何缓存弱引用?

java-当值返回键时如何缓存弱引用?

作者:互联网

我正在使用番石榴的Cache< Key,Value>.每当无法再更强地访问Key时,就应该对垃圾回收项进行垃圾收集(总有一天……).如果没有从Value返回到Key的引用,则使用CacheBuilder.weakKeys()可以做到这一点.

我可以弱引用,但这随时可能使我的Value无效.我可以处理,但我不愿意.

我可以使用weakValues(),但是这可能导致非常早的驱逐,因为我的值仅在短时间内被引用.

也许我可以使用softValues(),但是SoftReferences是quite broken.

可能我弄错了….什么是正确的解决方案?

更新资料

只需在每个键中引用值即可实现我需要的功能,但这是不可能的,因为键不在我的控制之下.如果是这样,那么我就不需要缓存,不需要弱引用,也不需要任何东西.

这样,每个键将保持其相应的值可到达,即为“ 1”.同样,每个Value都将保持其Key的可访问性,但这没有问题,因为不再存在对Value的引用.

1一些到期会更好,但这不是必需的.

解决方法:

不幸的是,如果没有ephemerons,这是无法解决的.

标签:caching,guava,weak-references,java
来源: https://codeday.me/bug/20191101/1981074.html