Java SoftReference优先级

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java SoftReference优先级相关的知识,希望对你有一定的参考价值。

我有一个应用程序,它有几个非常大的数据块,这些数据块需要很长的时间来计算。我把每一个数据块都作为一个SoftReference来保存,因为我可以重新计算它们,但这需要很长的时间。所以只要我有足够的内存,我就想重用我已经计算过的东西。这正是Java SoftReference的作用。

然而,我真正想做的是对这些数据块进行排序,因为有些数据块比其他数据块更重要,计算时间更长,所以我想让垃圾收集器最后收集这些数据。

我不想要一个解决方案,我把这些数据块写到磁盘上。我知道怎么做。我只是希望能够在我的软引用上设置垃圾收集的顺序优先级。

答案

我们不保证一个软引用被清除的时间,也不保证一组不同对象的软引用被清除的顺序。

通常情况下,JVM实现会在清理最近创建的引用或最近使用的引用之间进行选择。

以上是关于Java SoftReference优先级的主要内容,如果未能解决你的问题,请参考以下文章

Java中的SoftReference和WeakReference有啥区别?

java中SoftReference与WeakReference应用于高速缓存示例

Java 中 WeakReference 与 SoftReference 的区别?

JAVA中的强引用软引用(SoftReference)弱引用(WeakReference)和幽灵引用(PhantomReference)

深入理解StrongReference,SoftReference, WeakReference和PhantomReference

java中的强引用(Strong reference),软引用(SoftReference),弱引用(WeakReference),虚引用(PhantomReference)