国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Devik進程,linux進程,線程的區別。

2019-11-09 13:47:13
字體:
來源:轉載
供稿:網友

        Dalvik虛擬機運行在linux操作系統之上。Linux操作系統并沒有純粹的線程概念,只要兩個進程共享一個地址空間,那么就可以認為它們是同一個進程的兩個線程。Linux系統提供了兩個fork和clone調用,其中,前者是用來創建進程的,而后者是用來創建線程的。

         一般來說,虛擬機的進程和線程都是和目標機器本地操作系統的進程和線程一一對應的,這樣的好處是可以使本地操作系統來調度進程和線程。

每個Android應用程序進程都有一個Dalvik虛擬機實例。這樣做得好處是Android應用程序進程之間不會互相影響,也就是說,一個Android應用程序進程的意外終止,不會影響到其他的應用程序進程的正常運行。

        每個Android應用程序進程都是由一種稱為Zygote的進程fork出來的。Zygote進程是由init進程啟動起來的,也就是在系統啟動的時候啟動的。Zygnote進程在啟動的時候,會創建一個虛擬機實例,并且在這個虛擬機實例將所有的java核心庫都加載起來。每當Zygote進程需要創建一個Android應用程序進程的時候,它就通過復制自身來實現,也就是通過fork系統調用來實現。這些被fork出來的Android應用程序進程,一方面是復制了Zygote進程中的虛擬機實例,另外一方面是與Zygote進程共享了同一套Java核心庫。這樣不僅Android程序進程的創建很快,而且所有的應用程序都共享同一套Java核心庫而節省了內存空間。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新巴尔虎右旗| 日喀则市| 大庆市| 开平市| 全南县| 白城市| 武邑县| 萝北县| 宜春市| 临安市| 通榆县| 游戏| 岢岚县| 二手房| 闻喜县| 大厂| 仲巴县| 岢岚县| 得荣县| 罗山县| 双鸭山市| 花垣县| 宣城市| 白玉县| 三亚市| 杭锦后旗| 临夏市| 定州市| 小金县| 吉木乃县| 惠安县| 苏尼特右旗| 基隆市| 辽宁省| 洪雅县| 杭锦旗| 杭州市| 色达县| 叙永县| 威海市| 弋阳县|