a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Android > 正文

Android之線程池ThreadPoolExecutor的簡介

2019-10-21 21:19:22
字體:
供稿:網(wǎng)友

Android中的線程池ThreadPoolExecutor解決了單線程下載數(shù)據(jù)的效率慢和線程阻塞的的問題,它的應(yīng)用也是優(yōu)化實(shí)現(xiàn)的方式。所以它的重要性不言而喻,但是它的復(fù)雜性也大,理解上可能會(huì)有問題,不過作為安卓工程師,了解這個(gè)也是必然的。

ThreadPoolExecutor有幾個(gè)構(gòu)造函數(shù),最多參數(shù)的構(gòu)造函數(shù)最常用,下面會(huì)詳細(xì)介紹各個(gè)參數(shù)的含義及其幾個(gè)參數(shù)之間的關(guān)系:

<span style="font-size:18px;">ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler)</span>

各個(gè)參數(shù)的含義:

corePoolSize: 核心線程數(shù),能夠同時(shí)執(zhí)行的任務(wù)數(shù)量

maximumPoolSize:除去緩沖隊(duì)列中等待的任務(wù),最大能容納的任務(wù)數(shù)(其實(shí)是包括了核心線程池?cái)?shù)量)

keepAliveTime:超出workQueue的等待任務(wù)的存活時(shí)間maximumPoolSize放置的一個(gè)線程的存活時(shí)間

unit:時(shí)間單位

workQueue:阻塞等待線程的隊(duì)列,一般使用new LinkedBlockingQueue<Runnable>()這個(gè),如果不指定容量, 會(huì)一直往里邊添加,沒有限制,workQueue永遠(yuǎn)不會(huì)滿;

threadFactory:創(chuàng)建線程的工廠,使用系統(tǒng)默認(rèn)的類

handler:當(dāng)任務(wù)數(shù)超過maximumPoolSize時(shí),對任務(wù)的處理策略,默認(rèn)策略是拒絕添加

需要注意的是這里的handler與安卓中的handler不同

執(zhí)行流程:

當(dāng)線程數(shù)小于corePoolSize時(shí),每添加一個(gè)任務(wù),則立即開啟線程執(zhí)行

當(dāng)corePoolSize滿的時(shí)候,后面添加的任務(wù)將放入緩沖隊(duì)列workQueue等待;

當(dāng)workQueue也滿的時(shí)候,看是否超過maximumPoolSize線程數(shù),如果超過,默認(rèn)拒絕執(zhí)行

總結(jié)來說:核心線程corePoolSize、任務(wù)隊(duì)列workQueue、最大線程maximumPoolSize,如果三者都滿了,使用handler處理被拒絕的任務(wù)。當(dāng)一個(gè)線程的存活時(shí)間到達(dá)指定的存活時(shí)間索命該線程的任務(wù)已執(zhí)行完,該線程的生命周期結(jié)束,被拒絕的線程可以重新進(jìn)入線程池中開始任務(wù),依次循環(huán)此過程。

舉例說明:

假如:

corePoolSize=2,maximumPoolSize=3,workQueue容量為8;

最開始,執(zhí)行的任務(wù)A,B,此時(shí)corePoolSize已用完,再次執(zhí)行任務(wù)C,則C將被放入緩沖隊(duì)列workQueue中等待著,如果后來又添加了7個(gè)任務(wù),此時(shí)workQueue已滿,則后面再來的任務(wù)的數(shù)量是5將會(huì)和maximumPoolSize比較,由于maximumPoolSize為3,所以只能容納1個(gè)了,因?yàn)榘琧orePollSize個(gè)數(shù),所以后面來的任務(wù)默認(rèn)都會(huì)被拒絕4個(gè)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日日躁夜夜操 | 国产精品视频二区不卡 | 人人射人人插 | 欧美日韩免费在线 | 精品不卡| 激情欧美一区二区三区 | 丁香婷婷久久久综合精品国产 | 二区在线视频 | 久久久一二三四 | 亚洲自拍av在线 | 日韩一区二区精品 | 午夜视频你懂得 | 亚洲精品中文字幕 | 久艹在线视频 | 中文字幕一区二区三区乱码图片 | 另类 综合 日韩 欧美 亚洲 | 欧美精品一级 | 欧美福利一区二区三区 | 91精品久久久久久久久 | 美日韩免费视频 | 亚洲一级毛片 | 超碰在线看 | 免费国产羞羞网站视频 | 一 级做人爱全视频在线看 一级黄色裸体片 | 色激情五月| 理论片一区 | 成人精品一区二区 | 精品一二三区视频 | 毛片免费在线观看 | 羞羞小视频在线观看 | 亚洲第一av | 日本成人久久 | 成人免费淫片aa视频免费 | 99动漫| 久久久精选 | 久久a v视频 | 美日韩一区二区 | 亚洲欧美精品 | 国产精品久久久久久久久久东京 | 欧美日韩成人在线 | 91国内视频在线观看 |