真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在Android中使用ThreadPoolExecutor線程池

如何在Android中使用ThreadPoolExecutor線程池?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)建站擁有十載成都網(wǎng)站建設(shè)工作經(jīng)驗,為各大企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),對于網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、成都app軟件開發(fā)、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、國際域名空間等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等網(wǎng)站化運作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項目的能力。

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

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

ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler)

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

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

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

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

unit:時間單位

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

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

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

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

執(zhí)行流程:

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

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

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

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

舉例說明:

假如:

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

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

關(guān)于如何在Android中使用ThreadPoolExecutor線程池問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


網(wǎng)頁題目:如何在Android中使用ThreadPoolExecutor線程池
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/ggioej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部