線程與進程的區別
不同進程享有各自獨立的地址空間。切換花銷大
同一進程的不同線程享有公共的地址空間。切換花銷小
操作系統擁有內核空間和用戶空間。用戶態下CPU只享有前者控制權,內核態下CPU兩者皆可控制。
用戶級線程
圖片發自簡書App
用戶空間—放置進程(一個進程含多個線程,構成一張線程表)
內核空間—放置進程表。
特點:線程的切換不需要CPU進入內核態。一旦發生系統調用(內核態),會阻塞進程,從而阻塞線程。操作系統以進程為CPU調度單位。
核心級線程
圖片發自簡書App
用戶空間—放置進程(一個進程含多個線程)
內核空間—放置進程表和線程表。
特點:線程的切換需要CPU進入內核態。C操作系統以線程為CPU調度單位。