進程與多進程都是什么蚯姆?
->什么是進程五续?
進程是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ);是一個正在執(zhí)行的程序龄恋;計算機中正在運行的程序?qū)嵗砑荩豢梢苑峙浣o處理器并由處理器執(zhí)行的一個實體;由單一順序的執(zhí)行顯示郭毕,一個當(dāng)前狀態(tài)和一組相關(guān)的系統(tǒng)資源所描述的活動單元它碎。
就像一個車間。而線程就相當(dāng)于流水線
->什么是多進程显押?
進程是程序在計算機上的一次執(zhí)行活動扳肛。當(dāng)你運行一個程序,你就啟動了一個進程乘碑。顯然挖息,程序是死的(靜態(tài)的),進程是活的(動態(tài)的)兽肤。進程可以分為系統(tǒng)進程和用戶進程套腹。凡是用于完成操作系統(tǒng)的各種功能的進程就是系統(tǒng)進程绪抛,它們就是處于運行狀態(tài)下的操作系統(tǒng)本身;所有由用戶啟動的進程都是用戶進程。進程是操作系統(tǒng)進行資源分配的單位电禀。 進程又被細化為線程幢码,也就是一個進程下有多個能獨立運行的更小的單位。在同一個時間里尖飞,同一個計算機系統(tǒng)中如果允許兩個或兩個以上的進程處于運行狀態(tài)症副,這便是多任務(wù)。現(xiàn)代的操作系統(tǒng)幾乎都是多任務(wù)操作系統(tǒng)葫松,能夠同時管理多個進程的運行瓦糕。 多任務(wù)帶來的好處是明顯的,比如你可以邊聽mp3邊上網(wǎng)腋么,與此同時甚至可以將下載的文檔打印出來,而這些任務(wù)之間絲毫不會相互干擾亥揖。那么這里就涉及到并行的問題珊擂,俗話說,一心不能二用费变,這對計算機也一樣摧扇,原則上一個CPU只能分配給一個進程,以便運行這個進程挚歧。我們通常使用的計算機中只有一個CPU扛稽,也就是說只有一顆心,要讓它一心多用滑负,同時運行多個進程在张,就必須使用并發(fā)技術(shù)。實現(xiàn)并發(fā)技術(shù)相當(dāng)復(fù)雜矮慕,最容易理解的是“時間片輪轉(zhuǎn)進程調(diào)度算法”帮匾,它的思想簡單介紹如下:在操作系統(tǒng)的管理下,所有正在運行的進程輪流使用CPU痴鳄,每個進程允許占用CPU的時間非常短(比如10毫秒)瘟斜,這樣用戶根本感覺不出來 CPU是在輪流為多個進程服務(wù),就好象所有的進程都在不間斷地運行一樣痪寻。但實際上在任何一個時間內(nèi)有且僅有一個進程占有CPU螺句。 如果一臺計算機有多個CPU,情況就不同了橡类,如果進程數(shù)小于CPU數(shù)蛇尚,則不同的進程可以分配給不同的CPU來運行,這樣猫态,多個進程就是真正同時運行的佣蓉,這便是并行披摄。但如果進程數(shù)大于CPU數(shù),則仍然需要使用并發(fā)技術(shù)勇凭。 進行CPU分配是以線程為單位的疚膊,一個進程可能由多個線程組成,這時情況更加復(fù)雜虾标,但簡單地說寓盗,有如下關(guān)系:
總線程數(shù)<= CPU數(shù)量:并行運行
總線程數(shù)> CPU數(shù)量:并發(fā)運行
->進程如何創(chuàng)建?
->android:process
<service
android:name=".service.Myservice"
android:process="test"
android:enabled="true"
android:exported="true">
->進程的等級
->前臺進程
->可見進程
->服務(wù)進程
->后臺進程
->空進程
多進程
->什么情況下使用多進程璧函?
->如何使用多進程傀蚌?
->使用多進程需要注意哪些地方?
->進程與線程的區(qū)別
->初始化時進程
->進程間內(nèi)存不足的不可見性
多進程間的通信IPC
->IPC(interprocess communication)
->為什么需要蘸吓?
->內(nèi)存不共享
->如何通信:
->系統(tǒng)實現(xiàn)
->Messenger→利用Handler
->AIDL:Android Interface definition language
->.Create your.aidl file
線程與主線程
線程是一個單一的執(zhí)行序列善炫。單個線程中的代碼可以得到逐步執(zhí)行。每個Android應(yīng)用的運行都是從主線程開始的库继。然而箩艺,主線程并非如線程般的預(yù)定執(zhí)行序列。相反宪萄,它處于一個無限循環(huán)的運動狀態(tài)艺谆,等待著用戶或系統(tǒng)觸發(fā)事件的發(fā)生。事件觸發(fā)后拜英,主線程便負責(zé)執(zhí)行代碼静汤,以影響這些事件。如下圖:
* 圖片來自于參考資料Android編程權(quán)威指南