Android 線程池 總結(jié)

使用線程池的好處是減少線程創(chuàng)建和銷毀上所花費的時間及系統(tǒng)資源的開銷,解決資源不足的問題。

  • 重用存在的線程,減少線程創(chuàng)建、消亡的開銷
  • 有效控制最大并發(fā)線程數(shù)
  • 提供定時執(zhí)行,定期執(zhí)行,單線程,并發(fā)數(shù)控制等功能

Android 中的線程池都直接或間接通過配置 ThreadPoolExecutor 來實現(xiàn)不同特性的線程池,常見線程池為:

  • newCachedThreadPool: 只有非核心線程,最大線程數(shù)非常大,如果線程池中的線程都活動時,有新任務(wù)會創(chuàng)建新線程,否則會利用空閑線程,線程空閑時間為60秒,超過60秒會被回收。
    適合大量的耗時少的任務(wù)。
  • newFlxedThreadPool: 只有核心線程,并且數(shù)量固定,隊列沒有限制,如果線程池中的所有線程都活動時,新任務(wù)加入隊列等待執(zhí)行,空閑線程不回被釋放,還會占用一定的系統(tǒng)資源。
    更快的相應(yīng)外界請求。
  • newScheduledThreadPool: 核心線程數(shù)固定,非核心線程沒有限制,空閑時會直接被回收。
    適合執(zhí)行定時任務(wù)及固定周期的重復(fù)任務(wù)
  • newSingleThreadExecutor: 只有一個核心線程,確保所有任務(wù)都在同一線程中按順序完成。

線程池工作流程圖

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

相關(guān)閱讀更多精彩內(nèi)容

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