成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么在Android中使用ThreadPoolExecutor線程池-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“怎么在Android中使用ThreadPoolExecutor線程池”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么在Android中使用ThreadPoolExecutor線程池”吧!

吳忠ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

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

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

<span >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ì)一直往里邊添加,沒(méi)有限制,workQueue永遠(yuǎn)不會(huì)滿;

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

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

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

執(zhí)行流程:

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

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

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

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

舉例說(shuō)明:

假如:

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

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

到此,相信大家對(duì)“怎么在Android中使用ThreadPoolExecutor線程池”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)站題目:怎么在Android中使用ThreadPoolExecutor線程池-創(chuàng)新互聯(lián)
文章地址:http://jinyejixie.com/article48/csooep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、ChatGPT軟件開(kāi)發(fā)、做網(wǎng)站、網(wǎng)站制作、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
瓦房店市| 策勒县| 波密县| 贵定县| 中宁县| 赤城县| 怀化市| 夏津县| 赤城县| 马山县| 平湖市| 旬阳县| 沾益县| 太仓市| 昌宁县| 长子县| 茌平县| 长子县| 上高县| 汉阴县| 外汇| 湖州市| 行唐县| 华安县| 双峰县| 古交市| 襄樊市| 马边| 望奎县| 宿州市| 荆州市| 襄汾县| 繁峙县| 宜川县| 清水河县| 安达市| 灌云县| 乐平市| 双城市| 读书| 临澧县|