進程與線程的比較

調度單位

  • 引入線程後,線程是處理機調度的基本單位,進程是資源分配的基本單位,而不再是一個可執行的實體。
  • 在同一進程中線程的切換不會引起進程的切換,但從一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。

併發性

  • 引入線程後,不僅進程之間可以併發執行,而且在一個進程中的多個線程之間也可以併發執行。
  • 多個線程會爭奪處理機,在不同的狀態之間進行轉換。線程也是一個動態的概念,也有一個從創建到消亡的生命過程,具有動態性。

資源分配

  • 進程是資源分配的單位,一般線程自己不擁有系統資源,但可以訪問其隸屬進程的資源。
  • 同一進程中的所有線程都具有相同的地址空間(進程的地址空間)。

獨立性

  • 同進程的不同線程間的獨立性要比不同進程間的獨立性低得多。
  • 多個線程共享進程的內存地址空間和資源。

系統開銷

  • 創建、撤銷一個新線程系統開銷小。
  • 兩個線程間的切換系統開銷小。
  • 在一些OS 中,同一進程內的線程之間切換、同步、相互通信無須內核干預。

支持多處理機系統

  • 同進程的不同線程可以分配到多個處理機上執行,加快了進程的完成。
  • 現代OS 全部支持多線程。

å¾ç¤º

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章