国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

并發(fā)編程實(shí)戰(zhàn)學(xué)習(xí)筆記(四)——任務(wù)執(zhí)行

2019-11-06 06:40:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

無(wú)限制創(chuàng)建線程的不足

線程生命周期的開銷非常高;    創(chuàng)建與銷毀過程中都極其耗費(fèi)資源資源消耗;      活躍的線程會(huì)消耗系統(tǒng)資源,尤其是內(nèi)存。如果可運(yùn)行的線程數(shù)量多于可用處理器的數(shù)量,那么有些線程將閑置,大量的線程也會(huì)競(jìng)爭(zhēng)CPU時(shí)鐘周期,這個(gè)時(shí)候再創(chuàng)建更多的線程反而會(huì)降低性能。穩(wěn)定性。  線程數(shù)量有限制,內(nèi)存消耗過多,可能會(huì)拋出OutOfMemoryError

Executor框架的內(nèi)部機(jī)制

基于生產(chǎn)者-消費(fèi)者模式,提交任務(wù)的操作相當(dāng)于生產(chǎn)者(生成待完成的工作單元),執(zhí)行任務(wù)的線程則相當(dāng)于消費(fèi)者(執(zhí)行完成這些工作單元)。

使用線程池的優(yōu)勢(shì)

通過重用現(xiàn)有的線程而不是創(chuàng)建新線程,可以在處理多個(gè)請(qǐng)求時(shí)分?jǐn)偩€程創(chuàng)建和銷毀過程中產(chǎn)生的巨大開銷。當(dāng)請(qǐng)求到達(dá)時(shí),工作線程通常已經(jīng)存在,因此不會(huì)由于等待創(chuàng)建線程而延遲任務(wù)的執(zhí)行,從而提高了響應(yīng)性。通過適當(dāng)調(diào)整足夠多的線程以便使處理器保持忙碌狀態(tài)。同時(shí)還可以防止過多的線程相互競(jìng)爭(zhēng)資源而使應(yīng)用程序耗盡內(nèi)存或者失敗。

使用線程池限制線程數(shù)量并不能完全解決資源耗盡的問題

盡管服務(wù)器不會(huì)因?yàn)閯?chuàng)建過多的線程而失敗,但在足夠長(zhǎng)的時(shí)間內(nèi),如果任務(wù)到達(dá)的速度總是超過任務(wù)執(zhí)行的速度,那么服務(wù)器仍有可能(只是更不易)耗盡內(nèi)存,因?yàn)榈却龍?zhí)行的Runnable隊(duì)列將不斷增長(zhǎng),可以通過使用一個(gè)有界隊(duì)列在Executor框架內(nèi)部解決這個(gè)問題。

ExecutorService生命周期:運(yùn)行、關(guān)閉和已終止

ExecutorService在初使化創(chuàng)建時(shí)處于運(yùn)行狀態(tài)。Shutdown方法將執(zhí)行平緩的關(guān)閉過程:不再接受新的任務(wù),同時(shí)等待已經(jīng)提交的任務(wù)執(zhí)行完成——包括那些還未開始執(zhí)行的任務(wù)。ShutdownNow方法將執(zhí)行粗暴的關(guān)閉過程:它嘗試取消所有運(yùn)行中的任務(wù),并且不再啟動(dòng)隊(duì)列中尚未開始執(zhí)行的任務(wù)。

CompletionService并發(fā)計(jì)算并批量獲取結(jié)果

它是在線程池基礎(chǔ)上進(jìn)行并發(fā)計(jì)算的進(jìn)一步抽象,將Executor和BlockingQueue的功能融合在一起。你可以將Callable任務(wù)提交給它來(lái)執(zhí)行,然后使用類似于隊(duì)列操作的take和poll等方法來(lái)獲得已完成的結(jié)果。而這些結(jié)果在完成時(shí)將被封裝為Future。一個(gè)更簡(jiǎn)單的實(shí)現(xiàn)方法是使用Executor的invokeAll方法,提交一組任務(wù),并返回一組Future以獲取結(jié)果。

為任務(wù)設(shè)置時(shí)限

要實(shí)現(xiàn)這個(gè)功能,可以由任務(wù)本身來(lái)管理它的限定時(shí)間,并且在超時(shí)后中止執(zhí)行或取消任務(wù)。可再次使用Future,如果一個(gè)限時(shí)的get方法拋出了TimeoutException,那么可以通過Future來(lái)取消任務(wù)。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 登封市| 邹平县| 吉木萨尔县| 佛山市| 垫江县| 洞头县| 武乡县| 瑞丽市| 丰镇市| 绵阳市| 乌兰县| 武山县| 阳泉市| 房产| 沙河市| 灵石县| 伊宁县| 电白县| 鹰潭市| 木里| 宜宾市| 平舆县| 宿州市| 榆林市| 三河市| 芦溪县| 铁岭县| 都昌县| 三明市| 新余市| 平原县| 肇庆市| 丹江口市| 白朗县| 图片| 金川县| 静海县| 惠州市| 林周县| 云林县| 武宁县|