Android多線程:理解和簡(jiǎn)單使用總結(jié)

Android多線程目錄.png

一、Android中的線程

1.1 定義

線程,可以看作是進(jìn)程的實(shí)體,CPU調(diào)度資源的基本單位。本質(zhì)上是一串命令(也就是程序代碼),執(zhí)行線程可以理解為把命令交給操作系統(tǒng)去執(zhí)行。
Java中的線程:Java中默認(rèn)一個(gè)進(jìn)程只有一個(gè)線程,稱之為主線程。其它線程稱之為子線程也叫工作線程。
Android中的線程:Android沿用了Java線程模型,Android中主線程也叫UI線程。Android3.0以后,系統(tǒng)要求網(wǎng)絡(luò)訪問(wèn)必須在子線程中進(jìn)行。

1.2 特點(diǎn)

線程基本不擁有系統(tǒng)資源,只擁有在運(yùn)行時(shí)必不可少的系統(tǒng)資源(程序計(jì)數(shù)器,一組寄存器和棧)??梢圆l(fā)執(zhí)行。

二、Android中線程分類及作用

2.1 按用途分類:

  • 主線程:又叫UI線程,由ActivityThread管理

作用:運(yùn)行四大組件,和用戶交互以及更新UI。

  • 子線程

作用:處理耗時(shí)操作,比如網(wǎng)絡(luò)請(qǐng)求,復(fù)雜計(jì)算等。

2.2 按形態(tài)分類:

  • Thread

說(shuō)明:基本的線程,可以做一些簡(jiǎn)單的操作,經(jīng)常配合Handler使用。
相關(guān)面試題:線程的幾種狀態(tài)、線程安全和同步問(wèn)題、如何解決線程安全問(wèn)題,下文都有概述。
Android 多線程:Thread理解和使用總結(jié)

  • AsyncTask

說(shuō)明:輕量級(jí)的異步操作類,方便更新UI。
相關(guān)面試題:AsyncTask的原理、AsyncTask的優(yōu)點(diǎn)和缺點(diǎn)。
Android 多線程:AsyncTask理解和使用總結(jié)

  • HandlerThread

說(shuō)明:一個(gè)使用了Looper、Handler的線程。
主要作用:方便地實(shí)現(xiàn)每隔幾秒更新數(shù)據(jù)的功能,如價(jià)格,圖片等。比Timer使用方便并且內(nèi)存占用低。
Android 多線程:HandlerThread理解和使用總結(jié)

  • IntentService

說(shuō)明:封裝了HandlerThread和一個(gè)Handler,是HandlerThread的具體使用,由于屬于Service,若以比單純的線程優(yōu)先級(jí)更高。
Android 多線程:IntentService理解和使用總結(jié)
Android進(jìn)程優(yōu)先級(jí)

  • 線程池

相關(guān)面試題:線程池的使用、線程池的種類以及區(qū)別。
Android 多線程:線程池理解和使用總結(jié)

所有測(cè)試Demo,Git地址

參考資料:

Android 中三種啟用線程的方法
Android中AsyncTask使用詳解
Android線程管理之Thread使用總結(jié)
Android HandlerThread 完全解析
IntentService 示例與詳解
《Android開發(fā)藝術(shù)探索》

最后編輯于
?著作權(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ù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,163評(píng)論 25 708
  • 簡(jiǎn)介 1. 線程分類 主線程(UI線程) : 處理和界面相關(guān)的事情. 子線程 : 處理耗時(shí)操作. Android中...
    王世軍Steven閱讀 977評(píng)論 0 2
  • Android中的線程 線程,在Android中是非常重要的,主線程處理UI界面,子線程處理耗時(shí)操作。如果在主線程...
    shenhuniurou閱讀 881評(píng)論 0 3
  • 1、主題是什么? 沖孩子發(fā)火 2、事件是什么? 午飯時(shí)候,我們一家五口在一家小飯館吃飯,那里沒(méi)有寶寶椅。孩子就坐在...
    鏡霏閱讀 251評(píng)論 0 1
  • 序:思想是從生活中孕育出來(lái)的。 不知道大家有沒(méi)有過(guò)這樣的經(jīng)歷,當(dāng)被問(wèn)題與挑戰(zhàn)卡住的時(shí)候,才會(huì)想各種辦法開始改變自己...
    筱雯說(shuō)心理閱讀 320評(píng)論 0 0

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