首先來看一下,這三者的基本含義。
順序(sequential)表示多個操作「按次序執行」。
並行(parallel)表示多個操作「同時執行」。
併發(concurrent)表示將同乙個操作分解為多個部分並且允許無序執行。
場景:小明畫畫,他需要畫乙個圓、畫乙個矩形。
小明先畫圓,再畫矩形,這就是順序執行。
由於小明是乙個人,所以沒法同時畫圓和畫矩形,所以沒法並行執行。但是,如果小明可以同時用腳和手畫畫,那麼就可以並行執行了,即他同時用手畫圓,腳畫矩形。
小明畫一筆圓,又去畫一筆矩形,再回來畫一筆圓,又去畫一筆矩形。。。。。這就是併發執行。
在上面例子中,小明畫一筆圓,又去畫一筆矩形,再回來畫一筆圓,又去畫一筆矩形。。。這其實就是併發處理的順序執行。為什麼是順序執行呢,因為,小明始終是用乙隻手畫畫,乙隻手畫畫,所以只能是按順序執行;但因為小明來回畫圓和矩形,這就是併發處理。所以合起來就是併發處理的順序執行。
那併發處理的並行執行是什麼呢?在上面例子中,小明如果同時用腳和手來回畫圓和矩形,這就是併發處理的並行執行。
併發與並行區別
併發當有多個執行緒在操作時,如果系統只有乙個cpu,則它根本不可能真正同時進行乙個以上的執行緒,它只能把cpu執行時間劃分成若干個時間段,再將時間 段分配給各個執行緒執行,在乙個時間段的執行緒 執行時,其它執行緒處於掛起狀。這種方式我們稱之為併發 concurrent 並行 當系統有乙個以上cpu時...
區別 併發與並行
所有的併發處理都有排隊等候,喚醒,執行至少三個這樣的步驟.所以併發肯定是巨集觀概念,在微觀上他們都是序列被處理的,只不過資源不會在某乙個上被阻塞 一般是通過時間片輪轉 所以在巨集觀上看多個幾乎同時到達的請求同時在被處理。如果是同一時刻到達的請求也會根據優先順序的不同,而先後進入佇列排隊等候執行。併發...
並行與併發的區別
併發性和並行性的區別可以用饅頭做比喻。前者相當於乙個人同時吃三個饅頭,而後者相當於三個人同時吃乙個饅頭。併發性 concurrence 指兩個或兩個以上的事件或活動在同一時間間隔內發生。併發的實質是乙個物理cpu 也可以多個物理cpu 在若干道程式之間多路復用,併發性是對有限物理資源強制行使多使用者...