期货上的侦听器是否在 java 中消耗内存?



我正在发送大量事件,对于每个事件,我都会收到一个未来。我在那个未来设置了一个完成侦听器。如果我有太多的期货在监听事件完成会怎样?我的应用会内存不足吗?在 Java 中添加侦听器时,会消耗内存吗?

Java Future

只是一个 Java 对象,所以是的,Future 会消耗内存。

这里更大的问题是,这是内存泄漏的主要机会。如果不小心,可能会意外地保留对对象的引用的时间比预期的要长得多(甚至在应用程序的生命周期内(。事件处理是具有托管内存的环境中内存泄漏的主要原因之一。

但是,根据

提供的信息,很难判断您是否会耗尽内存。需要考虑的几件事:

  • 这些事件是否会导致您"保留"内存密集型对象更长时间?如果是这样,还要多久?
  • 在这种情况下,"很多"是多少?
  • 首先,你的记忆有多有限?

最新更新