![](/img/trans.png)
[英]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.