學習筆記 | 關於線程和進程的比較

引言

經典面試問題:線程和進程的區別linux

進程的定義和特徵

定義

通常狀況下,咱們把進程實體就簡稱爲進程。
進程實體由程序段相關的數據段PCB(進程控制塊)組成。
是系統進行資源分配和調度的一個獨立單位。
(出自《計算機操做系統》(第四版)西安科技大學出版社出版)面試

特徵

  1. 動態性:由建立而產生,由調度而執行,由撤銷而消亡。
  2. 併發性:多個進程實體同時存在於內存中。
  3. 獨立性:進程實體做爲一個能獨立運行、獨立得到資源和獨立接受調度的基本單位
  4. 異步性:進程是按異步方式運行的,即各自獨立。
線程的概念

做爲調度和分派的單位多線程

線程和進程的比較
  1. 調度的基本單位:在引入線程的OS中(如今的window和linux都有線程了),僅把線程做爲調度和分派的基本單位,因此線程是能獨立運行的單位。線程切換時僅保留和設置少許寄存器,切換代價遠低於進程。同一進程中,線程的切換不會致使進程的切換,但不一樣進程中的線程切換會致使進程的切換。
  2. 併發性:線程和進程都能併發執行。
  3. 進程做爲系統中擁有資源的一個基本單位,而線程僅擁有一點必不可少、能用於保證獨立運行的資源。但線程能共享所屬進程所擁有的資源,如文件、信號量、I/O設備等。
  4. 獨立性:進程的獨立性高於同一進程中線程的獨立性。這是由於操做系統爲了防止進程彼此干擾和破壞,各自擁有一個獨立的地址空間和其餘資源。而同一進程中的線程則共享進程的內存地址空間和資源。
  5. 系統開銷:即對系統資源的消耗,如內存、I/O設備、文件等。顯然進程消耗遠大於線程。
  6. 支持多處理機系統:即把當前進程中不一樣的線程分配給不一樣的處理機。因此多處理機操做系統中都引入了多線程。
相關文章
相關標籤/搜索