日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转)threadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别

發(fā)布時間:2023/12/3 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)threadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在看并發(fā)編程,在使用到ThreadPoolExecutor時,對它的三個關(guān)閉方法(shutdown()、shutdownNow()、awaitTermination())產(chǎn)生了興趣,同時又感到迷惑。查了些資料,自己寫了測試代碼,總算有了個比較清晰的認識。下面一起來看看這三個方法:

shutdown()
將線程池狀態(tài)置為SHUTDOWN,并不會立即停止:

停止接收外部submit的任務(wù)
內(nèi)部正在跑的任務(wù)和隊列里等待的任務(wù),會執(zhí)行完
等到第二步完成后,才真正停止
shutdownNow()
將線程池狀態(tài)置為STOP。企圖立即停止,事實上不一定:

跟shutdown()一樣,先停止接收外部提交的任務(wù)
忽略隊列里等待的任務(wù)
嘗試將正在跑的任務(wù)interrupt中斷
返回未執(zhí)行的任務(wù)列表
它試圖終止線程的方法是通過調(diào)用Thread.interrupt()方法來實現(xiàn)的,但是大家知道,這種方法的作用有限,如果線程中沒有sleep 、wait、Condition、定時鎖等應(yīng)用, interrupt()方法是無法中斷當前的線程的。所以,ShutdownNow()并不代表線程池就一定立即就能退出,它也可能必須要等待所有正在執(zhí)行的任務(wù)都執(zhí)行完成了才能退出。

但是大多數(shù)時候是能立即退出的

awaitTermination(long timeOut, TimeUnit unit)
當前線程阻塞,直到

等所有已提交的任務(wù)(包括正在跑的和隊列中等待的)執(zhí)行完
或者等超時時間到
或者線程被中斷,拋出InterruptedException
然后返回true(shutdown請求后所有任務(wù)執(zhí)行完畢)或false(已超時)

實驗發(fā)現(xiàn),shuntdown()和awaitTermination()效果差不多,方法執(zhí)行之后,都要等到提交的任務(wù)全部執(zhí)行完才停。
1
shutdown()和shutdownNow()的區(qū)別
從字面意思就能理解,shutdownNow()能立即停止線程池,正在跑的和正在等待的任務(wù)都停下了。這樣做立即生效,但是風(fēng)險也比較大;
shutdown()只是關(guān)閉了提交通道,用submit()是無效的;而內(nèi)部該怎么跑還是怎么跑,跑完再停。
1
2
Between client threads and thread pool there is a queue of tasks. When your application shuts down, you must take care of two things: what is happening with queued tasks and how already running tasks are behaving (more on that later). Surprisingly many developers are not shutting down thread pool properly or consciously. There are two techniques: either let all queued tasks to execute (shutdown()) or drop them (shutdownNow()) - it totally depends on your use case.

shutdown()和awaitTermination()的區(qū)別
shutdown()后,不能再提交新的任務(wù)進去;但是awaitTermination()后,可以繼續(xù)提交。
awaitTermination()是阻塞的,返回結(jié)果是線程池是否已停止(true/false);shutdown()不阻塞。
1
2
總結(jié)
優(yōu)雅的關(guān)閉,用shutdown()
想立馬關(guān)閉,并得到未執(zhí)行任務(wù)列表,用shutdownNow()
優(yōu)雅的關(guān)閉,并允許關(guān)閉聲明后新任務(wù)能提交,用awaitTermination()
關(guān)閉功能 【從強到弱】 依次是:shuntdownNow() > shutdown() > awaitTermination()
————————————————
版權(quán)聲明:本文為CSDN博主「shenlan_____」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u012168222/article/details/52790400

總結(jié)

以上是生活随笔為你收集整理的(转)threadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲第一免费网站 | 欧美福利电影 | 免费看黄色a级片 | 午夜在线你懂的 | 日产精品久久久久久久 | 精品无码一区二区三区免费 | 欧美日韩国产成人精品 | 国产91亚洲 | 办公室大战高跟丝袜秘书经理ol | 一区二区三区少妇 | 亚洲综合色一区二区 | 69av在线播放 | 色香影院 | 欧美少妇xx | 国产伦精品免费视频 | 无码无遮挡又大又爽又黄的视频 | 黄色av网站在线观看 | 爱啪啪av| 在线成人欧美 | 欧美色图13p | 三级网站 | 久久肉| 国产成人在线免费 | 先锋av资源在线 | 伊人久久综合影院 | 国产偷人爽久久久久久老妇app | 久久yy | 亚洲骚片 | 精品在线观看免费 | 亚洲最大的成人网 | 国产又粗又长视频 | 老司机免费精品视频 | 第一页综合 | 国产51视频 | 亚洲精品色图 | 欧美一区二区三区在线免费观看 | 污污视频在线播放 | 97色资源| 亚洲天堂av网 | 国产一级精品毛片 | 国产欧美一区二区在线观看 | 国产精品美女久久久免费 | 欧美野外猛男的大粗鳮 | 色综合视频在线观看 | 亚色av| 国产精品国产三级国产aⅴ下载 | 亚洲少妇一区二区 | 成人在线观看网址 | 91视频h| 国产亚洲一区二区三区不卡 | 午夜肉伦伦 | 欧美综合在线一区 | 99re在线视频免费观看 | 国产精品一区在线观看 | 玩弄少妇人妻 | 亚洲黄a | 亚洲一区不卡在线 | 中文字幕第315页 | 国产精品久久久精品三级 | 成人av动漫在线观看 | 日本一区二区免费在线观看 | 一边摸一边做爽的视频17国产 | 99在线精品免费视频 | 精品乱子一区二区三区 | 亚洲午夜精品久久久久久浪潮 | 欧美性大战久久久久xxx | 亚洲欧美日韩国产一区二区三区 | 法国少妇愉情理伦片 | 国模私拍在线 | 超碰97免费在线 | 美国黄色av | 日本护士体内she精2xxx | 欧美一区二区三区视频在线观看 | 国产精品久久久久久妇女6080 | 逼逼av | 激情综合五月网 | 久久中文网 | 国产一区二区三区免费在线观看 | www婷婷av久久久影片 | 久久亚洲精选 | 久久午夜夜伦鲁鲁一区二区 | 亚洲日本影院 | a黄色大片 | 黑丝av在线 | 黄色一级视频片 | 美女视频黄色在线观看 | 成人网站在线进入爽爽爽 | 很黄很色的视频 | 欧美激情成人在线 | 夜夜涩| 天天爽网站| 啪啪无遮挡 | 18禁超污无遮挡无码免费游戏 | 欧美sese| 国产高清一区 | 91人人草 | 国产精品一区二区小说 | 欧美精品欧美精品系列 | 国产精品久久久一区二区 |