2.1進程與線程(2)

2.1.2 線程

一. 線程
  1. 線程與進程
    引入進程是爲了更好的使多道程序併發執行,提高資源利用率和系統吞吐量。
    引入線程是爲了減小程序在併發執行時的時空開銷,提高併發性能。


2. 屬性
(1)進程是資源分配的基本單位,線程是調度的基本單位。
(2)同一進程的各線程共享進程擁有資源。
(3)同一進程內的線程切換不會導致進程切換。
3. 實現方式
(1)用戶級線程
(2)內核級線程(核心態)
(3)組合級線程
操作系統只能看見內核級線程,所以內核級線程纔是CPU分配的單元

二. 多線程模型(三種)

什麼是多線程?
一個程序可以對應多個線程,每個線程對應執行不同的任務。
(1)多對一模型(多個用戶級對應一個內核級線程)

  • 優點:線程管理在用戶空間進行,效率高
  • 缺點:併發性不高。(若一個線程阻塞,則整個進程阻塞)

(2)一對一模型

  • 優點:併發性強
  • 缺點:創建線程開銷大

(3)多對多模型(比較合理)

三. 注意
  1. 進程獲得資源,裏面的線程共享進程空間。
  2. 多線程和多任務區別?
    (1)多線程是對於程序而言,表示可執行的線程數
    (2)多任務是對於操作系統而言,表示可同時執行的程序數。
  3. 併發和並行區別?
    (1)併發是在一段時間內,進程宏觀上同時執行,微觀上串行執行。
    (2)並行是在某一時刻,同時執行。
  4. 父進程創建子進程,和主程序調用子程序有什麼不同?
    (1)父進程創建子進程,兩個進程可併發執行。
    (2)主程序調用子程序時,會停在調用點,直到子程序返回。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章