Android的進(jìn)程和線程

線程

多線程的4種方式

  1. Handler+Thread
  2. AsyncTask
  3. ThreadPoolExecutor
  4. IntentService

線程分類

  • 守護(hù)線程, 例:時(shí)鐘處理線程、idle線程、垃圾回收線程、屏幕更新線程等
  • 非守護(hù)線程(用戶線程)
    必須等所有的Non-daemon線程都運(yùn)行結(jié)束了,只剩下daemon的時(shí)候,JVM才會(huì)停下來(lái),注意Main主程序是Non-daemon線程,默認(rèn)產(chǎn)生的線程全部是Non-daemon線程。

線程優(yōu)先級(jí)

線程優(yōu)先級(jí)分為10個(gè)級(jí)別,分別用Thread類常量表示

進(jìn)程

多進(jìn)程之間通信方式

  • AIDL:功能強(qiáng)大,支持進(jìn)程間一對(duì)多的實(shí)時(shí)并發(fā)通信,并可實(shí)現(xiàn) RPC (遠(yuǎn)程過(guò)程調(diào)用)。
  • Messenger:支持一對(duì)多的串行實(shí)時(shí)通信, AIDL 的簡(jiǎn)化版本。
  • Bundle:四大組件的進(jìn)程通信方式,只能傳輸 Bundle 支持的數(shù)據(jù)類型。
  • ContentProvider:強(qiáng)大的數(shù)據(jù)源訪問(wèn)支持,主要支持 CRUD 操作,一對(duì)多的進(jìn)程間數(shù)據(jù)共享,例如我們的應(yīng)用訪問(wèn)系統(tǒng)的通訊錄數(shù)據(jù)。
  • BroadcastReceiver:即廣播,但只能單向通信,接收者只能被動(dòng)的接收消息。
  • 文件共享:在非高并發(fā)情況下共享簡(jiǎn)單的數(shù)據(jù)。
  • Socket:通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)。

refrence

[Android 多進(jìn)程通信] http://www.itdecent.cn/p/84a12977dc26
[Android多線程的四種方式] http://www.itdecent.cn/p/2b634a7c49ec
[Android多線程:你必須要了解的多線程基礎(chǔ)知識(shí)匯總] https://cloud.tencent.com/developer/article/1424838
Android 中的進(jìn)程
Android 中包含 native 進(jìn)程和 java進(jìn)程。

1、nativie 進(jìn)程:采用C/C++ 實(shí)現(xiàn),不包含dalvik實(shí)例的進(jìn)程。/system/bin/目錄下面的程序文件運(yùn)行后都是以native進(jìn)程形式存在的。
2、java進(jìn)程:Android中運(yùn)行與dalvik 虛擬機(jī)之上的進(jìn)程。
dalvik虛擬機(jī)的宿主進(jìn)程由fork()系統(tǒng)調(diào)用創(chuàng)建,所以每一個(gè)java進(jìn)程都是存在于一個(gè)native進(jìn)程中,因此,java進(jìn)程的內(nèi)存分配比native進(jìn)程復(fù)雜,因?yàn)檫M(jìn)程中存在一個(gè)虛擬機(jī)實(shí)例。

native 進(jìn)程 和 java進(jìn)程如何通信?

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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