簡體   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