Davik進程,linux進程,線程之間的區別

Linux 進程:

  1. 獨立的內核堆棧獨立的存儲空間,它是操作系統中資源分配和調度的最小單位。
  2. 以進程爲單位,分配系統資源,給程序進行調度。
  3. 在執行一個程序時,它會創建一個進程,來執行應用程序,並且伴隨着資源的分配和釋放。

(備註:所謂進程,說白了就是應用程序)

 

Davik 進程:

  1. Dalvik 虛擬機運行在 Linux 系統之上。
  2. Davik 進程就是 Linux 操作系統中的一個進程,屬於 Linux 進程。
  3. 每一個 Android 應用程序進程都有一個 Dalvik 虛擬機實例。這樣做的好處是 Android 應用程序進程之間不會相互影響,也就是說,一個 Android 應用程序進程的意外終止,不會影響到其他的應用程序進程的正常運行。

(備註:每個 Android 應用程序都會對應一個獨立的 Dalvik 虛擬機)

 

線程:

  1. 線程是進程的一個實體,是 CPU 調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。
  2. 線程自己基本上不擁有系統資源,在運行時,只需要必不可少的資源(e.g. 程序計數器,一組寄存器和棧)
  3. 線程與同屬一個進程的其他的線程共享進程所擁有的全部資源。

e.g. 開啓一個子線程:

new Thread().start();

 

進程和線程的區別:

  1. 一個程序至少有一個進程,一個進程至少有一個線程。
  2. 線程的劃分尺度小於進程,使得多線程程序的併發性高。
  3. 進程在執行過程中擁有獨立的內存單元,而多個線程共享內存(同屬一個進程),從而極大地提高了程序的運行效率。
  4. 每個獨立的進程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須以存在應用程序中,由應用程序提供多個線程執行控制。
  5. 從邏輯角度來看,多線程的意義在於一個應用程序中,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章