Android 線程優(yōu)化

Android線程調(diào)度機(jī)制

*分時(shí)調(diào)度模式:所有的線程輪流獲得CPU的使用權(quán),平均分配每個(gè)線程占用的CPU時(shí)間。

*搶占式調(diào)度模式:優(yōu)先讓可運(yùn)行池中的優(yōu)先級(jí)高的線程占用CPU,優(yōu)先級(jí)相同隨機(jī)選擇一個(gè)線程
線程優(yōu)先級(jí):數(shù)值越小,優(yōu)先級(jí)越高

Android異步方式

*Thread: 直接創(chuàng)建線程
*AsyncTask:為UI線程與工作線程之間進(jìn)行快速的切換提供一種簡(jiǎn)單便捷的機(jī)制,適用于當(dāng)下立即需要的啟動(dòng),但是異步執(zhí)行的聲明周期短暫的使用場(chǎng)景
*HandlerThread 為某些回掉方法或者等待某些任務(wù)的執(zhí)行設(shè)置一個(gè)專屬的線程,并提供線程任務(wù)的調(diào)度機(jī)制。
*ThreadPool:把任務(wù)分解成不同的單元,分發(fā)到各個(gè)不同的線程上,進(jìn)行同時(shí)并發(fā)處理
*IntentService:適合于執(zhí)行由UI觸發(fā)的后臺(tái)service任務(wù),并可以把后臺(tái)任務(wù)執(zhí)行的情況通過一定的機(jī)制反饋給UI。
*Loaders:android系統(tǒng)提供了LoaderManager。

Android線程優(yōu)化

*線程指定線程名稱,對(duì)線程分組便于對(duì)問題進(jìn)行排查
*合理指定線程優(yōu)先級(jí)
*采用線程池復(fù)用線程
*合適的場(chǎng)景選擇合適的異步方式
*控制整個(gè)應(yīng)用的線程數(shù)量,應(yīng)用各個(gè)模塊復(fù)用線程
*不再使用的HandlerThread需要退出
*不要直接使用創(chuàng)建線程,應(yīng)該采用線程池

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容