Android線程與Java線程

線程的概念

進(jìn)程內(nèi)相對獨(dú)立的、擁有獨(dú)立的堆棧和局部變量的的可執(zhí)行單元。

線程的生命周期

創(chuàng)建,阻塞,執(zhí)行,等待,死亡

Android線程的類型

分類的依據(jù):根據(jù)線程的作用

  • UI thread(main thread):接收和處理用戶事件輸入,View更新;

  • 系統(tǒng)類 thread:例如
    1). binder(服務(wù)于進(jìn)程間通信)
    2). GC
    3). debug connection
    4). finalizers

  • Background thread(work thread):執(zhí)行自定義task

Android線程的通信方式

workThread <---> workThread
  • 管道(pipe)
    關(guān)鍵字:一方寫一方讀、線程安全、轉(zhuǎn)移的數(shù)據(jù)類型binary or character data、對應(yīng)的PipedXXXX JAVA io Api、默認(rèn)buffer=1024
    writer如果關(guān)閉,連接既disconnected,但是buffer里面數(shù)據(jù)依舊可以被讀取,如果reader closed,buffer 就被clear

  • 共享內(nèi)存(Shared memory)
    線程不安全、變量,對象,

  • 阻塞隊列(BlockingQueue)

workThread <---->UI thread(更新UI線程的方式)
  • Activity.runOnUiThread()
  • View.post()/delayPost()
  • Handler framework //TODO:待專題梳理
  • Broadcasts
  • AsyncTask's onProgressUpdate()

如何保證線程安全 //TODO: 待專題梳理

主要有兩種方法

  • 鎖關(guān)鍵字
  • 并發(fā)包下面的容器和鎖
    1). java.util.concurrent.locks.ReentrantLock
    2). java.util.concurrent.locks.ReentrantReadWriteLock
最后編輯于
?著作權(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)容