調度單位
- 引入線程後,線程是處理機調度的基本單位,進程是資源分配的基本單位,而不再是一個可執行的實體。
- 在同一進程中線程的切換不會引起進程的切換,但從一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。
併發性
- 引入線程後,不僅進程之間可以併發執行,而且在一個進程中的多個線程之間也可以併發執行。
- 多個線程會爭奪處理機,在不同的狀態之間進行轉換。線程也是一個動態的概念,也有一個從創建到消亡的生命過程,具有動態性。
資源分配
- 進程是資源分配的單位,一般線程自己不擁有系統資源,但可以訪問其隸屬進程的資源。
- 同一進程中的所有線程都具有相同的地址空間(進程的地址空間)。
獨立性
- 同進程的不同線程間的獨立性要比不同進程間的獨立性低得多。
- 多個線程共享進程的內存地址空間和資源。
系統開銷
- 創建、撤銷一個新線程系統開銷小。
- 兩個線程間的切換系統開銷小。
- 在一些OS 中,同一進程內的線程之間切換、同步、相互通信無須內核干預。
支持多處理機系統
- 同進程的不同線程可以分配到多個處理機上執行,加快了進程的完成。
- 現代OS 全部支持多線程。