理解併發程序

2022-06-04 21:18:08 字數 760 閱讀 9158

順序程式設計:

1、執行的順序性(即乙個程式在處理器上是嚴格按照順序執行的,每個操作必須在乙個操作開始之前結束)。

2、環境的封閉性(程式執行獨佔全機資源,注意,是全機資源!後面我們可以看到和併發設計的不同點)。

3、過程的可再重現性(簡單點說就是不管你的計算機配置高還是配置低、什麼時候執行、什麼地方執行,它輸出的結果都是惟一的。這一點當你看到下面的併發程序就會深刻體會到。因為併發程式執行的結果與時間相關)。

併發程式設計:

程式併發執行是指一組程式的執行在時間上是重疊的,所謂時間重疊就是乙個程式還沒執行結束另乙個程式就開始執行了,或者說,多個程式處於都已開始執行但都還未執行完成。

舉個例子,a、b分別執行操作a1,a2,a3和b1,b2,b3。在單處理器上,順序執行操作序列為a1,b1,a2,b2,a3,b3或a1,b1,a2,b2,b3,a3等,則稱a和b的執行是併發的。從巨集觀上來看,併發性反映乙個時間段內有幾個程式都處於執行但尚未結束的狀態。注意:這只是巨集觀上看來,其實處理器在同一時刻只能處理乙個程式,千萬不要以為同一時刻處理器在處理多個程(要是有多個處理器那就另當別論了~)。就像你的大腦一樣,讓你同一時刻算多道運算題,你覺得可能嗎。計算機併發地計算多道題目只不過是先計算a題,但是還沒執行完,然後又去執行b題,b題還沒執行完,下面說不定又去執行a題或者其他的題目。這樣在使用者看來好像是多個程式在同時執行。當然了這一切的保證是計算機運算速度是相當快的。如果計算機執行的速度非常慢,你會明顯感覺到cpu的控制權在各個程式之間來回交替。

理解併發程序

說說你對順序程式設計與併發程式設計的理解。並舉乙個例子進行說明 順序程式設計 嚴格按照順序執行,不受外界因素影響,所以不會對結果產生影響。和程式設計思想一樣,自上而下順序執行。舉例 超市排隊買單,每個人按先後順序排隊,每個人所購買的商品不同,但是他們都需要買單,才能走出商場。併發程式設計 併發程式不...

理解併發程序

順序程式設計 程式順序執行是指其在處理器上的執行是嚴格有序的,即只有在前乙個操作結束後才能開始後續操作。如果有多個程式,這些程式必須按照呼叫次序嚴格有序執行。而且這些程式如果中斷,這是允許的,但不停止,中斷不會對程式最終造成影響,也就是說程式執行結果與執行速度無關。舉例 按順序從上往下求解過程雞兔同...

理解併發程序

順序程式設計 1 執行的順序性 即乙個程式在處理器上是嚴格按照順序執行的,每個操作必須在乙個操作開始之前結束 2 環境的封閉性 程式執行獨佔全機資源,注意,是全機資源!後面我們可以看到和併發設計的不同點 3 過程的可再重現性 簡單點說就是不管你的計算機配置高還是配置低 什麼時候執行 什麼地方執行,它...