想要更好的進行多程式和多執行緒程式設計,建議先了解幾個概念。
一.概念點
1.程式是什麼
2.程式概念的引入
3.執行緒是什麼
4.執行緒概念的引入
5.引入執行緒的好處
二.詳細介紹
1.程式是什麼
想要搞懂程式的概念,首先要搞懂程式的概念,程式是什麼呢?
程式,是指令和資料的一個集合,是靜態概念,可長期儲存。
程式,是程式在一個資料集合上的執行過程,是個動態的概念。
兩者什麼關係呢?
一個程式可以對應多個程式或單個程式。
一個程式可以對應一個程式或一段程式。
它的組成是什麼呢?
包括程式,資料集合及程式控制塊(PCB)
CPU對程式的排程,切換,管理等都是通過PCB來完成
舉例:
如程式A切換到程式B,進過一下步驟:
1.保護程式A的現場
即將程式A的當前執行資訊儲存到程式A的PCB中,儲存點包括:程式執行的當前位置,程式狀態
字,所有暫存器的值等
2.恢復程式B的現場
即從程式B的PCB中獲取其執行資訊,將這些資訊寫入到相應的暫存器,程式計數器等中。
2.程式概念的引入
在早期的計算機系統中,程式的執行是分道進行的,每次只能執行一道程式,即記憶體中一次只能裝入
一道程式。因此每執行一個程式,系統中的所有資源都被該程式佔用,即其控制了作業系統的所有資源。
在現代計算機系統中,記憶體中通常可同時存放多道程式,程式在計算機系統中併發執行,為了描述程式並
發執行的特徵,引入了程式的概念。
概括來說,為了提高系統資源利用率(CPU,記憶體等是不是得到充分利用)和吞吐量(單位時間內CPU能處理
的作業的個數),讓多個程式併發執行,為了區分這些併發執行的程式及便於協調管理,引入了程式的概念
程式是獨立申請資源的基本單位。
一句話,為了讓CPU能同時執行多個程式,引入程式的概念
3.執行緒是什麼
執行緒(thread, 臺灣稱 執行緒)是"程式"中某個單一順序的控制流。也被稱為輕量程式(lightweight pro
cesses)。電腦科學術語,指執行中的程式的基本排程單位。
資源擁有者仍然是程式。
4.執行緒概念的引入
同引入程式的概念類似,引入執行緒的目的是讓一個程式能同時執行多個控制流或多個程式。
如下圖表示單程式中的單執行緒和單程式中的多執行緒
5.引入執行緒的好處
1.建立一個新執行緒花費少
2.切換執行緒花費少,如果兩個執行緒同屬於一個程式的話,共享記憶體和檔案