Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关闭执行器服务java_Java_Executorservice - Fatal编程技术网

关闭执行器服务java

关闭执行器服务java,java,executorservice,Java,Executorservice,如果在未断开urlconnection或关闭bufferedreader的情况下关闭启动urlconnection的executor服务或bufferedreader,会发生什么情况?内存丢失,并且会降低cpu速度吗?关闭executor不会终止已经繁忙的线程。这些将运行到完成(或使用中断有序关闭)。因此,所有资源都将被正确地清理(除非您错过了某个地方的finally块)。您有责任使您的可运行程序正确处理InterruptedException(和其他异常)。关闭执行程序不会终止已经繁忙的线程。

如果在未断开urlconnection或关闭bufferedreader的情况下关闭启动urlconnection的executor服务或bufferedreader,会发生什么情况?内存丢失,并且会降低cpu速度吗?

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

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

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

    connection.setReadTimeout(2000);
    connection.setConnectTimeout(2000);
由于Javadoc本身不提供保证,所以不能保证这会起作用

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

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

提供了一种通过中断线程立即关闭的方法,但由于这些线程不能被中断,因此它没有提供额外的好处


只有当线程定义了其中断策略并执行可中断操作时,它才提供好处。

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

    connection.setReadTimeout(2000);
    connection.setConnectTimeout(2000);
由于Javadoc本身不提供保证,所以不能保证这会起作用

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

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

提供了一种通过中断线程立即关闭的方法,但由于这些线程不能被中断,因此它没有提供额外的好处


只有当线程定义了中断策略并执行可中断操作时,它才提供好处。

旁注:
关机
不会尝试中断;您可以使用
shutdownow
,它将显示。此外,请查看通过
java.util.concurrent
提供的一些实用程序,以获得与任务通信的更细粒度控制。还有一个
awaitTermination
方法,该方法将阻塞,直到所有线程终止。它还允许您设置超时间隔。旁注:
shutdown
不会尝试中断;您可以使用
shutdownow
,它将显示。此外,请查看通过
java.util.concurrent
提供的一些实用程序,以获得与任务通信的更细粒度控制。还有一个
awaitTermination
方法,该方法将阻塞,直到所有线程终止。它还允许您设置超时间隔。