是否不再引用的java线程池需要执行shutdown?

时间:2018-05-30 13:56:46

标签: java multithreading threadpool

不再引用的java线程池是否需要执行shutdown?jvm会自动释放线程资源吗?

1 个答案:

答案 0 :(得分:1)

请参阅doc

  

程序中不再引用的池并且没有剩余   线程将自动关闭。

但是,默认情况下,池中的线程不会自动终止,它们会等待新任务。所以资源不会被释放。

  

如果您想确保   即使用户忘记呼叫,也会回收未引用的池   shutdown(),然后你必须安排未使用的线程最终死掉,   通过设置适当的保持活动时间,使用零下限   核心线程和/或设置allowCoreThreadTimeOut(boolean)。

在我的个人experience中,我遇到OutOfMemory错误,因为没有致电shutdownallowCoreThreadTimeOut