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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义线程池-线程池工作流程介绍

發(fā)布時間:2024/4/13 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义线程池-线程池工作流程介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ThreadPoolExecutor參數(shù)詳解

我們可以通過下面的場景理解ThreadPoolExecutor中的各個參數(shù);

a客戶(任務(wù))去銀行(線程池)辦理業(yè)務(wù),但銀行剛開始營業(yè),窗口服務(wù)員還未就位(相當(dāng)于線程池中初始線程數(shù)量為0),

于是經(jīng)理(線程池管理者)就安排1號工作人員(創(chuàng)建1號線程執(zhí)行任務(wù))接待a客戶(創(chuàng)建線程);

在a客戶業(yè)務(wù)還沒辦完時,b客戶(任務(wù))又來了,于是經(jīng)理(線程池管理者)就安排2號工作人員(創(chuàng)建2號線程執(zhí)行任務(wù))接待b客戶(創(chuàng)建了一個新的線程);假設(shè)該銀行總共就2個窗口(核心線程數(shù)量是2);

緊接著在a,b客戶都沒有結(jié)束的情況下c客戶來了,于是經(jīng)理(線程池管理者)就安排c客戶先坐到銀行大廳的座位上(空位相當(dāng)于是任務(wù)隊列)等候,

并告知他: 如果1、2號工作人員空出,c就可以前去辦理業(yè)務(wù);

此時d客戶又到了銀行,(工作人員都在忙,大廳座位也滿了)于是經(jīng)理趕緊安排臨時工(新創(chuàng)建的線程)在大堂站著,手持pad設(shè)備給d客戶辦理業(yè)務(wù);

假如前面的業(yè)務(wù)都沒有結(jié)束的時候e客戶又來了,此時正式工作人員都上了,臨時工也上了,座位也滿了(臨時工加正式員工的總數(shù)量就是最大線程數(shù)),

于是經(jīng)理只能按《超出銀行最大接待能力處理辦法》(飽和處理機制)拒接接待e客戶;

最后,進(jìn)來辦業(yè)務(wù)的人少了,大廳的臨時工空閑時間也超過了1小時(最大空閑時間),經(jīng)理就會讓這部分空閑的員工人下班.(銷毀線程)

但是為了保證銀行銀行正常工作(有一個allowCoreThreadTimeout變量控制是否允許銷毀核心線程,默認(rèn)false),即使正式工閑著,也不得提前下班,所以1、2號工作人員繼續(xù)待著(池內(nèi)保持核心線程數(shù)量);

?

線程池工作流程總結(jié)示意圖

?

總結(jié)

以上是生活随笔為你收集整理的自定义线程池-线程池工作流程介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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