線程
多線程的4種方式
- Handler+Thread
- AsyncTask
- ThreadPoolExecutor
- 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)程如何通信?