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

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

java 優雅關閉線程池的方案

瀏覽:168日期: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久久,三上悠亚国产精品一区二区三区
在线一区视频| 国产精品白丝av嫩草影院| 国产精品精品| 精品黄色一级片| 久久亚洲精精品中文字幕| 欧美精品1区| 精品视频一二| 国产精品精品| 五月婷婷亚洲| 一区二区视频欧美| 99综合视频| 亚洲天堂av资源在线观看| 日韩精品网站| 国产亚洲精品久久久久婷婷瑜伽| 亚洲先锋成人| 亚洲精品美女| 国产精品白丝久久av网站| 国产精品久久观看| 女人天堂亚洲aⅴ在线观看| 亚洲成人日韩| 亚洲va久久| 国产一区二区三区网| 免费福利视频一区二区三区| 欧美日韩在线二区| 久久福利毛片| 精品视频在线一区二区在线| 日韩在线综合| 亚洲欧美视频一区二区三区| 日韩精品欧美大片| av中文字幕在线观看第一页| 999在线观看精品免费不卡网站| 亚洲小说春色综合另类电影| 国产日产精品_国产精品毛片| 欧美www视频在线观看| 日韩午夜av在线| 欧美激情麻豆| 亚洲精品国模| 精品捆绑调教一区二区三区| 亚洲深深色噜噜狠狠爱网站| 久久69成人| 最新国产精品视频| 精品国产一级| 国产偷自视频区视频一区二区| 国产欧美在线| 亚洲一区二区三区免费在线观看| 国产亚洲第一伦理第一区| 欧美一区二区性| 欧美国产专区| 日韩视频1区| 亚洲精华国产欧美| 在线看片福利| 久久天堂影院| 欧美在线看片| 亚洲免费成人av在线| 自由日本语亚洲人高潮| 都市激情国产精品| 麻豆国产精品一区二区三区 | 欧美精品一区二区三区精品| 国产精品99久久免费| 在线精品亚洲| 亚洲专区视频| 亚洲免费福利一区| 亚洲精品一二| 日韩一区二区三区高清在线观看| 亚洲免费黄色| 黄色免费成人| 免费看的黄色欧美网站 | 国产精品白浆| 国产探花一区| 最新国产精品久久久| 视频一区欧美精品| 国产亚洲福利| 亚洲免费毛片| 日韩**一区毛片| 国产日本久久| 久久精品色播| 中文字幕人成乱码在线观看| 一区二区三区四区日本视频| 欧美日韩尤物久久| 好吊日精品视频| 日韩精品一二三四| 日韩和欧美一区二区| 国产精品magnet| 国产一区2区在线观看| 精品网站aaa| 久久一区二区三区电影| 国产美女一区| 日本不卡在线视频| 国产精品一区三区在线观看| 久久不见久久见国语| 欧美xxxx中国| 免费在线观看一区二区三区| 日韩一区免费| av在线资源| 日韩精选在线| 日韩国产一区二区| 久久亚洲在线| 日本一区中文字幕| 日韩成人高清| 在线一区二区三区视频| 久久精品一本| 欧美在线综合| 麻豆91在线播放| 香蕉成人久久| 神马久久午夜| 亚洲精品国产精品粉嫩| 国产福利片在线观看| 日韩一区中文| 欧美日韩国产精品一区二区亚洲| 国产另类在线| 视频一区在线播放| 麻豆成全视频免费观看在线看| 日av在线不卡| 亚洲性视频h| 国产欧美激情| 国产精品视区| 欧美高清不卡| av在线最新| 欧美激情日韩| 欧美久久久网站| 石原莉奈在线亚洲三区| 日韩欧美二区| 国产精品a久久久久| 日本免费在线视频不卡一不卡二| 99国产精品| 成人久久一区| 日韩在线短视频| 九九九精品视频| 欧美国产视频| 奇米色欧美一区二区三区| 亚洲神马久久| 丝袜亚洲另类欧美| 视频一区欧美精品| 性欧美长视频| 日韩在线观看一区二区| 国产精品丝袜xxxxxxx| 免费日韩精品中文字幕视频在线| 欧美日韩在线播放视频| 日韩毛片视频| 婷婷成人综合| 国产视频一区三区| 蜜桃久久久久久| 亚洲三级国产| 欧美专区一区| 欧美影院视频| 卡一精品卡二卡三网站乱码| 免费视频一区二区三区在线观看 | 一本色道精品久久一区二区三区| 欧美不卡视频| 免费看精品久久片| 欧美日韩夜夜| 综合日韩av| 尹人成人综合网| 亚洲精品无吗| 欧美激情麻豆| 久久久五月天| 天堂成人国产精品一区| 亚洲精品第一| 你懂的国产精品永久在线| 色乱码一区二区三区网站| 欧美1区2区3区| 欧美日韩一区二区三区不卡视频| 久久精品三级| 日韩一区精品视频| 福利一区和二区| 一区在线免费观看| 国产日韩一区二区三区在线| 91av亚洲| 日本91福利区| 久久精品主播| 欧美视频精品全部免费观看| 久久亚洲国产| 国产日韩中文在线中文字幕 | 亚洲精品88| 日韩精品三级| 在线精品视频在线观看高清| 国产精品地址| 亚洲精品福利| 精品91久久久久| 日韩在线中文| 国产精品白丝久久av网站| 国产精品免费看| 亚洲1234区| 国产+成+人+亚洲欧洲在线| 日韩三区四区| 亚洲精品护士| 日韩欧美一区二区三区在线视频| 日本精品另类| 视频一区二区国产| 激情综合自拍| 中文字幕系列一区| 国产91在线播放精品| 国产另类在线| 国产亚洲精aa在线看| 日韩**一区毛片| 日韩综合一区二区| 亚洲一区导航| 亚洲另类黄色| 日韩高清三区| 国产欧美日韩影院|