繁体   English   中英

shutdown executor service java

[英]shutdown executor service java

如果关闭启动urlconnection或bufferedreader的执行程序服务,而不断开urlconnection或关闭bufferedreader,会发生什么,是否有内存丢失,它会降低CPU的速度吗?

关闭Executor不会终止已经忙碌的线程。 这些将运行完成(或使用中断有序关闭)。 所以所有资源都将被正确清理(除非你错过了某个地方的finally块)。 您的责任是让您的runnables正确处理InterruptedException(和其他异常)。

每个URLConnection类都带有预定义的超时。 您可以使用指定超时

    connection.setReadTimeout(2000);
    connection.setConnectTimeout(2000);

无法保证这将起作用,因为Java doc本身不提供保证。

URLConnection的#setConnectTimeout

URLConnection的#setReadTimeout

此方法的某些非标准实现会忽略指定的超时。 要查看读取超时设置,请调用getReadTimeout()。

因此,除非您指定适当的超时,否则在这种情况下中断将不起作用。

ExecutorService#shutdownNow()提供了一种通过中断线程立即关闭的方法,但由于这些线程无法中断,因此不会带来额外的好处。

它仅在线程定义其中断策略并执行可中断操作时提供好处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM