您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python進程之并行與并發的區別有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
并行 :
當系統有一個以上CPU時,則進程的操作有可能非并發。當一個CPU執行一個進程時,另一個CPU可以執行另一個進程,兩個進程互不搶占CPU資源,可以同時進行,這種方式我們稱之為并行。
并發 :
當有多個進程在操作時,如果系統只有一個CPU,則它根本不可能真正同時執行一個以上的進程,它只能把CPU運行時間劃分成若干個時間段,再將時間 段分配給各個進程執行,在一個時間段的進程代碼運行時,其它進程處于掛起狀,這種方式我們稱之為并發。
區別:
并發和并行是即相似又有區別的兩個概念,并行是指兩個或者多個事件在同一時刻同時執行,而并發是指兩個或多個事件通過時間片輪流被執行。在多道程序環境下,并發性是指在一段時間內宏觀上有多個程序在同時運行,但在單核CPU中,同一時刻僅能有一道程序執行,故微觀上這些程序只能是分時地交替執行。倘若在計算機中有多個CPU,則這些可以并發執行的程序便可被分配到多個處理機上,實現并行執行,即利用每個處理機來處理一個可并發執行的程序,這樣,多個程序便可以同時執行。
進程的狀態如下圖所示
在了解其他概念之前,我們首先要了解進程的幾個狀態。在程序運行的過程中,由于被操作系統的調度算法控制,程序會進入幾個狀態:就緒,運行和阻塞。
(1)就緒(Ready)狀態
當進程已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執行,這時的進程狀態稱為就緒狀態。
(2)執行/運行(Running)狀態當進程已獲得處理機,其程序正在處理機上執行,此時的進程狀態稱為執行狀態。
(3)阻塞(Blocked)狀態正在執行的進程,由于等待某個事件發生而無法執行時,便放棄處理機而處于阻塞狀態。引起進程阻塞的事件可有多種,例如,等待I/O完成、申請緩沖區不能滿足、等待信件(信號)等。
感謝各位的閱讀!關于Python進程之并行與并發的區別有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。