1
我有一个控制器类,在操作过程中,它使用它执行的执行器来执行任务。如果我只是让gc在超出范围时清理控制器,那么JVM似乎不会死亡。我假设这是因为默认的执行程序不会超时,或者在很长一段时间后超时。Java终结者:一个可接受的用例?
鉴于在控制器仍然可以访问的情况下执行器不应该被关闭,并且在控制器被垃圾收集之后执行器不会被使用,是否可以安全/可接受地使用终结器来使用:
@Override public void finalize() { executor.shutdown(); }
我问,因为有关的终结每次讨论似乎归结为,“不除非我不打算详细阐述非常具体的情况下使用。”
我不知道这是可能的默认执行者,但仔细检查我看到它允许我指定一个ThreadFactory。谢谢。 – 2013-03-14 06:40:35