[英]Understanding java executor service shutdown and awaitTermination
[英]shutdown executor service java
如果关闭启动urlconnection或bufferedreader的执行程序服务,而不断开urlconnection或关闭bufferedreader,会发生什么,是否有内存丢失,它会降低CPU的速度吗?
关闭Executor不会终止已经忙碌的线程。 这些将运行完成(或使用中断有序关闭)。 所以所有资源都将被正确清理(除非你错过了某个地方的finally块)。 您的责任是让您的runnables正确处理InterruptedException(和其他异常)。
每个URLConnection
类都带有预定义的超时。 您可以使用指定超时
connection.setReadTimeout(2000);
connection.setConnectTimeout(2000);
无法保证这将起作用,因为Java doc本身不提供保证。
URLConnection的#setConnectTimeout
此方法的某些非标准实现会忽略指定的超时。 要查看读取超时设置,请调用getReadTimeout()。
因此,除非您指定适当的超时,否则在这种情况下中断将不起作用。
ExecutorService#shutdownNow()提供了一种通过中断线程立即关闭的方法,但由于这些线程无法中断,因此不会带来额外的好处。
它仅在线程定义其中断策略并执行可中断操作时提供好处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.