這篇文章將為大家詳細講解有關什么是Python中的并行和并發,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
x
并行和并發
無論是并行還是并發,在用戶看來都是'同時'運行的,不管是進程還是線程,都只是一個任務而已,真是干活的是cpu,cpu來做這些任務,而一個cpu同一時刻只能執行一個任務。
并發是偽并行,即看起來是同時運行。單個cpu+多道技術就可以實現并發,(并行也屬于并發),簡單的可以理解為快速在多個線程來回切換,感覺好像同時在做多個事情。
只有具備多個cpu才能實現并行,單核下,可以利用多道技術,多個核,每個核也都可以利用多道技術(多道技術是針對單核而言的)。 有四個核,六個任務,這樣同一時間有四個任務被執行,假設分別被分配給了cpu1,cpu2,cpu3,cpu4,一旦任務1遇到I/O就被迫中斷執行,此時任務5就拿到cpu1的時間片去執行,這就是單核下的多道技術 ,而一旦任務1的I/O結束了,操作系統會重新調用它(需知進程的調度、分配給哪個cpu運行,由操作系統說了算),可能被分配給四個cpu中的任意一個去執行。

多道技術:內存中同時存入多道(多個)程序,cpu從一個進程快速切換到另外一個,使每個進程各自運行幾十或幾百毫秒,這樣,雖然在某一個瞬間,一個cpu只能執行一個任務,但在1秒內,cpu卻可以運行多個進程,這就給人產生了并行的錯覺,即偽并發,以此來區分多處理器操作系統的真正硬件并行(多個cpu共享同一個物理內存)。
同步執行:一個進程在執行某個任務時,另外一個進程必須等待其執行完畢,才能繼續執行。
異步執行:一個進程在執行某個任務時,另外一個進程無需等待其執行完畢,就可以繼續執行,當有消息返回時,系統會通知后者進行處理,這樣可以提高執行效率。
舉個例子,打電話時就是同步通信,發短息時就是異步通信。
關于什么是Python中的并行和并發就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。