執行緒並行與併發的區別

2021-07-27 15:37:26 字數 313 閱讀 8627

併發:在同一時間間隔內,同時有多個程序或執行緒執行。

並行:在同一時刻,同時有多個程序或執行緒執行。

舉個簡單明瞭的例子:

如果一台主機只有乙個cpu,那麼在某一時刻內最多只能有乙個執行緒在cpu中執行。這個時候,如果有多個執行緒需要執行,則將乙個時間間隔分成小的時間段,在每個時間段內執行不同的執行緒,某一時刻內最多只有乙個執行緒在cpu中執行,這種被稱為併發。

而一台主機如果有兩個cpu的時候,如果有多個執行緒需要執行,則分別在兩個cpu上分時間段執行,同一時刻內可能會有兩個執行緒分別在同一主機的兩個cpu中執行,這兩個在同一時刻執行中的執行緒的情況被稱為並行。

併發與並行區別

併發當有多個執行緒在操作時,如果系統只有乙個cpu,則它根本不可能真正同時進行乙個以上的執行緒,它只能把cpu執行時間劃分成若干個時間段,再將時間 段分配給各個執行緒執行,在乙個時間段的執行緒 執行時,其它執行緒處於掛起狀。這種方式我們稱之為併發 concurrent 並行 當系統有乙個以上cpu時...

區別 併發與並行

所有的併發處理都有排隊等候,喚醒,執行至少三個這樣的步驟.所以併發肯定是巨集觀概念,在微觀上他們都是序列被處理的,只不過資源不會在某乙個上被阻塞 一般是通過時間片輪轉 所以在巨集觀上看多個幾乎同時到達的請求同時在被處理。如果是同一時刻到達的請求也會根據優先順序的不同,而先後進入佇列排隊等候執行。併發...

並行與併發的區別?執行緒與程序的區別?

假設乙個有三個學生需要輔導作業,幫每個學生輔導完作業是乙個任務 順序執行 老師甲先幫學生a輔導,輔導完之後再取給b輔導,最後再去給c輔導,效率低下 很久才完成三個任務 併發 老師甲先給學生a去講思路,a聽懂了自己書寫過程並且檢查,而甲老師在這期間直接去給b講思路,講完思路再去給c講思路,讓b自己整理...