日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java 優雅關閉線程池的方案

瀏覽:167日期:2022-08-20 16:04:43

我們經常在項目中使用的線程池,但是是否關心過線程池的關閉呢,可能很多時候直接再項目中直接創建線程池讓它一直運行當任務執行結束不在需要了也不去關閉,這其實是存在非常大的風險的,大量的線程常駐在后臺對系統資源的占用是巨大的 ,甚至引發異常。所以在我們平時使用線程池時需要注意優雅的關閉,這樣可以保證資源的管控。

在 Java 中和關閉線程池相關的方法主要有如下:

void shutdown() List<Runnable> shutDownNow boolean awaitTermination boolean isShutDown boolean isTerminated

對于這些方法有著不同的使用和作用,下面我們真的會這些不同的方法做詳細的介紹。

ShutDown

shutDown 方法從字面意思我們可以看到是停止關閉的意思,我們先來看下面的一段代碼,首先我們通過 ThreadPoolExecutor 來創建一個容量是10的無界線程池,與 FixedThreadPool 類似的,這里手動創建可以更好地理解線程池的創建。在后我們提交一千個任務執行,再執行 shutdown 方法進行暫停。

public static void main(String[] args) throws InterruptedException { ExecutorService service = new ThreadPoolExecutor(10,10,0L,TimeUnit.MILLISECONDS,new LinkedBlockingQueue<>()); for (int i = 0; i < 1000; i++) { service.submit(() ->{try { TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) { System.out.println('接受中斷,不處理~~');}System.out.println('args = ' + Arrays.deepToString(args)+ Thread.currentThread().getName()); }); } service.shutdown(); } 我們可以看到結果所以線程會正常執行結束后再關閉線程池,對于 ShutDown 而言它可以安全的停止一個線程池,它有幾個關鍵點 ShutDown 會首先將線程設置成 SHUTDOWN 狀態,然后中斷所有沒有正在運行的線程 正在執行的線程和已經在隊列中的線程并不會被中斷,說白了就是使用shutDown 方法其實就是要等待所有任務正常全部結束以后才會關閉線程池 調用 shutdown() 方法后如果還有新的任務被提交,線程池則會根據拒絕策略直接拒絕后續新提交的任務。

ShutDownNow

這個方法與上面方法相比較,直觀就是 now ,即立即停止任務,同樣是上述案列,略作修改如下,

public static void main(String[] args) throws InterruptedException { ExecutorService service = new ThreadPoolExecutor(10,10,0L,TimeUnit.MILLISECONDS,new LinkedBlockingQueue<>(1000)); for (int i = 0; i < 1000; i++) { service.submit(() ->{try { TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) { System.out.println('接受中斷,結束線程~~'); //這里響應中斷 return;}System.out.println('args = ' + Arrays.deepToString(args)+ Thread.currentThread().getName()); }); } final List<Runnable> runnables = service.shutdownNow(); System.out.println(runnables); } 執行上述代碼我們發現,當執行shutDownNow 方法后,會像全部正在運行的隊列通知中斷,正在運行的線程接收到中斷信號后選擇處理,而在隊列中的全部取消執行轉移到一個list隊列中返回,如上述 List<Runnable> runnables ,這里記錄了所有終止的線程

awaitTermination

這個方法并不是用來關閉線程池的,首先我們看一下這個方法的定義:

boolean awaitTermination_(long timeout, TimeUnit unit)_

可以看到這個方法有兩個參數,timeout 表示等待的時間,unit 時間單位 這個方法的作用是,調用后等待timeout時間后,反饋線程池的狀態, 等待期間(包括進入等待狀態之前)線程池已關閉并且所有已提交的任務(包括正在執行的和隊列中等待的)都執行完畢,相當于線程池已經“終結”了,方法便會返回 true; 等待超時時間到后,第一種線程池“終結”的情況始終未發生,方法返回 false; 等待期間線程被中斷,方法會拋出 InterruptedException 異常。 上面代碼可以修改來測試,這里不再粘貼代碼

isShutDown

isShutDown 方法正如名字,判斷線程池是否停止,返回的是 Boolean 類型,如果已經開始停止線程池則返回 true 否則放回false 當調用了shutDown 或shutDownNow 時之后,會返回 true 不過需要注意,這時候只是代表線程池關閉流程的開始,并不是說線程池已經停止了

isTerminated

這個方法與上面的方法的區別就是這是正真檢測線程池是否真的終結了 這不僅代表線程池已關閉,同時代表線程池中的所有任務都已經都執行完畢了,因為在調用 shutdown方法之后,線程池會繼續執行里面未完成的任務,包括正在執行的任務和在任務隊列中等待的任務。 如果調用了 shutdown 方法,但是有一個線程依然在執行任務,那么此時調用 isShutdown方法返回的是 true,而調用 isTerminated方法返回的便是 false,因為線程池中還有任務正在在被執行,線程池并沒有真正“終結”。 直到所有任務都執行完畢了,調用 isTerminated()方法才會返回 true,這表示線程池已關閉并且線程池內部是空的,所有剩余的任務都執行完畢了。

作者:AnonyStar

原文鏈接:https://www.cnblogs.com/i-code/p/14024845.html

以上就是java 優雅關閉線程池的方案的詳細內容,更多關于Java 關閉線程池的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美搞黄网站| 91精品国产一区二区在线观看| 蜜桃视频一区二区三区| 久久久久久久久久久妇女| 久久久久久婷| 91亚洲国产| 日本在线啊啊| 天堂√8在线中文| 日韩啪啪电影网| 亚洲不卡系列| 天堂资源在线亚洲| 日本欧美不卡| 久久婷婷av| 久久精品播放| 狠狠操综合网| 怡红院精品视频在线观看极品| 91九色精品| 欧美午夜不卡| 亚洲我射av| 日韩欧美高清一区二区三区| 中文一区一区三区免费在线观 | 在线亚洲精品| 精品91久久久久| 免费在线观看视频一区| 日韩一区二区三区免费视频 | 影音先锋国产精品| 久久亚洲国产精品一区二区| 亚洲三级国产| 日韩二区三区在线观看| 久久三级毛片| 91看片一区| 亚洲精品中文字幕乱码| 亚洲精品一级| 国产精品久久久久久久久久妞妞 | 精品国产乱码久久久| 色在线视频观看| 在线亚洲国产精品网站| 日本午夜精品一区二区三区电影| 激情综合五月| 激情久久久久久| 国产亚洲一区在线| 91成人精品在线| 日本久久黄色| 久久99伊人| 国产欧美丝祙| 久久91导航| 免费成人性网站| 国产精品国产三级在线观看| 日韩在线短视频| 亚洲精品一区二区在线播放∴| 国产欧美一区二区三区精品观看| 黄在线观看免费网站ktv| 日韩视频精品在线观看| 日韩欧美精品一区二区综合视频| 久久香蕉精品香蕉| 亚洲成人精品| 日本不卡一区二区| 亚洲精品福利电影| 蜜桃视频在线观看一区二区| 国产一区三区在线播放| 免费日韩一区二区| 高清一区二区| 日本中文字幕一区二区视频| 色婷婷色综合| 中文字幕亚洲在线观看| 激情综合婷婷| 综合国产在线| 日本久久精品| 亚洲精品影视| 欧美日韩国产v| 日韩一区二区三区在线看| 国产精品亚洲一区二区三区在线观看| 日韩在线电影| 久久国产免费| 久久不卡国产精品一区二区| 99pao成人国产永久免费视频| 国产精品66| 老司机精品久久| 日韩国产欧美| 国产视频一区二区在线播放| 日韩午夜av| www.51av欧美视频| 日韩精品亚洲专区| 99精品电影| 国产极品嫩模在线观看91精品| 国产99精品一区| 国产亚洲一卡2卡3卡4卡新区| 蜜桃成人av| 激情综合五月| 欧美日韩18| 水野朝阳av一区二区三区| 国产在线观看www| 国产区精品区| 一区二区精彩视频| 国产麻豆久久| 精品日韩一区| 欧美天堂一区二区| 免费黄网站欧美| 亚洲电影在线一区二区三区| 久久这里只有| 亚洲免费资源| 黄色亚洲免费| 99成人超碰| 中文在线资源| 精品视频在线你懂得| 日韩av中文字幕一区二区| 在线视频精品| 91精品精品| 成人影视亚洲图片在线| 国产精品videossex| 日韩精品欧美大片| 日韩在线播放一区二区| 欧洲激情综合| 99国产精品免费视频观看| 国产精品xx| 国产精品欧美三级在线观看| 日韩一区精品| 亚洲人成精品久久久| 亚洲在线网站| 国产精品免费看| 九一成人免费视频| av亚洲在线观看| 伊人久久大香线蕉av不卡| 亚洲www啪成人一区二区| 黄色aa久久| 日韩电影二区| 成人精品亚洲| 成人久久一区| 亚洲性图久久| 婷婷精品进入| 精品欧美一区二区三区在线观看| 久久97久久97精品免视看秋霞| 欧美日韩1区| 欧美午夜网站| 国产精品亚洲一区二区在线观看| 国产日韩欧美在线播放不卡| 国产精品免费不| 麻豆精品视频在线| 精品视频在线观看网站| 高清一区二区| 日韩精品麻豆| 91精品二区| 免费观看在线综合| 日韩精品高清不卡| 国产精品www994| 欧美国产视频| 久草精品视频| sm久久捆绑调教精品一区| 一本大道色婷婷在线| 99热国内精品| 亚洲欧美日本日韩| 亚洲三级视频| 国产精品伦一区二区| 日本精品黄色| 久久久成人网| 午夜精品免费| 伊人久久大香伊蕉在人线观看热v| 日本不卡高清| 美女视频网站久久| 久久久久免费av| 91看片一区| 亚洲精品九九| 黄色aa久久| 日韩欧美自拍| 欧美成人国产| 日本 国产 欧美色综合| 日本亚洲视频在线| 国产欧美日韩在线观看视频| 精品亚洲免a| 欧美成a人免费观看久久| 99在线观看免费视频精品观看| 国产精品试看| 日韩激情精品| 精品国产亚洲一区二区在线观看| 美女一区网站| 精品一区在线| 亚洲一区导航| 国产精品久久久久9999高清| 天堂а√在线最新版中文在线| 欧美日韩国产在线观看网站| 日本午夜精品一区二区三区电影| 久久三级中文| 一区二区三区四区在线看| 一区二区电影| 国产精品mv在线观看| 久久久9色精品国产一区二区三区| 99国产精品久久久久久久| 日本麻豆一区二区三区视频| 精品视频免费| 夜夜嗨一区二区三区| 日本va欧美va瓶| 精品中文在线| 欧美日韩国产亚洲一区| 久久国产尿小便嘘嘘| 偷拍精品精品一区二区三区| 三级欧美在线一区| 国产成人精品福利| 日韩制服丝袜先锋影音| 欧美激情一区| 亚洲国产不卡|