程序 執行緒 併發執行的概念

2022-07-05 06:48:09 字數 1049 閱讀 7360

關於程序、執行緒、併發執行的概念,我們先來看下面的一段話:

「一般來說,當執行乙個應用程式的時候,就啟動了乙個程序,當然有些會啟動多個程序。啟動程序的時候,作業系統會為程序分配資源,其中最主要的資源是記憶體空間,因為程式是在記憶體中執行的。

在程序中,有些程式流程塊是可以亂序執行的,並且這個**塊可以同時被多次執行。實際上,這樣的**塊就是執行緒體。執行緒是程序中亂序執行的**流程。當多個執行緒同時執行的時候,這樣的執行模式成為併發執行。」

下面我以乙個日常生活中簡單的例子來說明程序和執行緒之間的區別和聯絡:

程序五狀態:

在五狀態程序模型中,程序狀態被分成下列五種狀態。程序在執行過程中主要是在就緒、執行和阻塞三種狀態間進行轉換。建立狀態和退出狀態描述程序建立的過程和程序退出的過程。

1)執行狀態(running):程序占用處理器資源;處於此狀態的程序的數目小於等於處理器的數目。在沒有其他程序可以執行時(如所有程序都在阻塞狀態),通常會自動執行系統的空閒程序。

2)就緒狀態(ready):程序已獲得除處理器外的所需資源,等待分配處理器資源;只要分配了處理器程序就可執行。就緒程序可以按多個優先順序來劃分佇列。例如,當乙個程序由於時間片用完而進入就緒狀態時,排人低優先順序佇列;當程序由i/o操作完成而進入就緒狀態時,排入高優先順序佇列。

3)阻塞狀態(blocked):當程序由於等待i/o操作或程序同步等條件而暫停執行時,它處於阻塞狀態。

4)建立狀態(new):程序正在建立過程中,還不能執行。作業系統在建立狀態要進行的工作包括分配和建立程序控制塊表項、建立資源**(如開啟檔案表)並分配資源、引導程式並建立位址空間表等。

5)退出狀態(exit):程序已結束執行,**除程序控制塊之外的其他資源,並讓其他程序從程序控制塊中收集有關資訊(如記帳和將退出**傳遞給父程序)。

程序 執行緒 併發執行的概念

於程序 執行緒 併發執行的概念,我們先來看下面的一段話 一般來說,當 執行乙個應用程式的時候,就啟動了乙個程序,當然有些會啟動多個程序。啟動程序的時候,作業系統會為程序分配資源,其中最主要的資源是記憶體空間,因為程式是在記憶體中執行的。在程序中,有些程式流程塊是可以亂序執行的,並且這個 塊可以同時被...

Pytest 多程序併發執行

在用例執行的過程中,想要用多程序併發執行測試用例,如何實現呢,其實很簡單,pytest有對應的模組,安裝方式。安裝pip install pytest xdist 使用pytest test demo.py n 2 s n 2 表示以兩個程序的方式並行執行自動化測試用例,預設以用例層面進行分配 用例...

原子操作和執行緒的併發執行

兩個等價執行緒併發的執行下列程式,a為全域性變數,初始為0,假設printf 操作都是原子性的,則輸出肯定不是哪個?void foo else printf d a 選項 a.01 b.10 c.12 d.22 對於a選項 p1選執行判斷資料,決定要執行printf,中斷,p2執行完,再執行p1,結...