python入門教程12-04 (python語法入門之進程的兩大重要概念)

這篇文章給你們分享的是有關Python進程之並行與併發的區別有哪些的內容。下面咱們一塊兒來學習一下吧!算法

進程的並行與併發併發

並行 : 並行是指二者同時執行,好比賽跑,兩我的都在不停的往前跑異步

併發 : 併發是指資源有限的狀況下,二者交替輪流使用資源,好比一段路同時只能過一我的,A走一段後,讓給B,B用完繼續給A ,交替使用,目的是提升效率。ide

區別:學習

並行是同時運行,只有具有多個cpu才能實現並行操作系統

併發是是僞並行,即看起來是同時運行。單個cpu+多道技術就能夠實現併發,(並行也屬於併發)進程

全部現代計算機常常會在同一時間作不少件事,一個用戶的電腦(不管是單cpu仍是多cpu),均可以同時運行多個任務(一個任務能夠理解爲一個進程)。事件

    啓動一個進程來殺毒(360軟件)內存

    啓動一個進程來看電影(暴風影音)資源

    啓動一個進程來聊天(騰訊QQ)

全部的這些進程都需被管理,因而一個支持多進程的多道程序系統是相當重要的

多道技術概念回顧:內存中同時存入多道(多個)程序,cpu從一個進程快速切換到另一個,使每一個進程各自運行幾十或幾百毫秒,這樣,雖然在某一個瞬間,一個cpu只能執行一個任務,但在1秒內,cpu卻能夠運行多個進程,這就給人產生了並行的錯覺,即僞併發,以此來區分多處理器操做系統的真正硬件並行(多個cpu共享同一個物理內存)

同步異步阻塞非阻塞

狀態介紹

在瞭解其餘概念以前,咱們首先要了解進程的幾個狀態。在程序運行的過程當中,因爲被操做系統的調度算法控制,程序會進入幾個狀態:就緒,運行和阻塞。

1、就緒(Ready)狀態

  當進程已分配到除CPU之外的全部必要的資源,只要得到處理機即可當即執行,這時的進程狀態稱爲就緒狀態。

2、執行/運行(Running)狀態

​ 當進程已得到處理機,其程序正在處理機上執行,此時的進程狀態稱爲執行狀態。

3、阻塞(Blocked)狀態

​ 正在執行的進程,因爲等待某個事件發生而沒法執行時,便放棄處理機而處於阻塞狀態。引發進程阻塞的事件可有多種,例如,等待I/O完成、申請緩衝區不能知足、等待信件(信號)等。

同步和異步

同步

一個任務的完成須要依賴另一個任務時,只有等待被依賴的任務完成後,依賴的任務才能算完成,這是一種可靠的任務序列。要麼成功都成功,失敗都失敗,兩個任務的狀態能夠保持一致。

異步

不須要等待被依賴的任務完成,只是通知被依賴的任務要完成什麼工做,依賴的任務也當即執行,只要本身完成了整個任務就算完成了。至於被依賴的任務最終是否真正完成,依賴它的任務沒法肯定,因此它是不可靠的任務序列。

相關文章
相關標籤/搜索