通量如何被垃圾收集?

时间:2017-08-23 14:08:34

标签: java garbage-collection project-reactor

让我们想象一下,我创建了一个Flux。此Flux在创建过程中已被授予访问某些资源的权限,并且我希望在Cancel / Complete上进行一些清理(例如,释放一些外部资源)。最后,我删除了所有指向Flux的指针,因此它可用于垃圾收集。垃圾收集会发生什么?我的Flux是否收到Cancel信号,以便进行清理?

1 个答案:

答案 0 :(得分:1)

  • 没有与GC绑定的特定清理机制(Flux在GCed时不会收到取消信号)
  • 请注意,有一个名为Flux.using的工厂运营商需要资源供应商和清理回调。否则,您可以使用doFinally执行清理操作
  • 在这两种情况下,假设Flux不是无限的(例如,Flux.create从不调用completeerror)或被取消。
  • 通常应该在订阅时初始化Flux,因此如果没有订阅它,资源可能尚未初始化(再次,只要它们在Flux.create回调中初始化,否则你的里程可能会有所不同)