溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python進程中串行與并行的區(qū)別

發(fā)布時間:2020-09-24 13:19:57 來源:億速云 閱讀:373 作者:Leah 欄目:編程語言

Python進程中串行與并行的區(qū)別?針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

串行和并行

串行指的是任務(wù)的執(zhí)行方式。串行在執(zhí)行多個任務(wù)時,各個任務(wù)按順序執(zhí)行,完成一個之后才能進行下一個。(早期單核CPU的情況下)

并行指的是多個任務(wù)在同一時刻可以同時執(zhí)行(前提是多核CPU),不需要等待。

同步和異步

所謂同步就是一個任務(wù)的完成需要依賴另外一個任務(wù)時,只有等待被依賴的任務(wù)完成后,依賴的任務(wù)才能算完成,這是一種可靠的任務(wù)序列。要成功都成功,失敗都失敗,兩個任務(wù)的狀態(tài)可以保持一致需要等待、協(xié)調(diào)運行。

所謂異步就是彼此獨立的,分配任務(wù)后,不需要等待該任務(wù)的執(zhí)行結(jié)果,繼續(xù)做自己的事,無論被分配的任務(wù)是執(zhí)行成功還是失敗都是不關(guān)心的,只要自己完成了整個任務(wù)就算完成了。至于其它任務(wù)是否真正完成無法確定,所以它是不可靠的任務(wù)序列。

小結(jié):

1、串行和同步的區(qū)別:串行指的是在早期單核CPU時,一臺電腦在同一時刻只能執(zhí)行一個程序,如果想要運行另一個程序需要關(guān)閉當(dāng)前程序,才能執(zhí)行下一個程序,是針對多個程序來說的。同步指的是在一個程序中同一時刻只能執(zhí)行一個任務(wù)。是針對一個程序中多個進程或多個線程來說的。

所以兩者有著本質(zhì)上的區(qū)別。串行是針對多個程序,同步是針對一個程序內(nèi)部的多個進程或多個線程的。

2、并行和異步的區(qū)別:并行指的是多核CPU,在同一時刻可以執(zhí)行多個程序。異步指的是在同一個程序內(nèi)可以執(zhí)行多個進程或者多個線程。

兩者本質(zhì)上的區(qū)別就是并行指的是多個程序,異步指的是一個程序內(nèi)部的多個進程和多個線程。

3、并行和并發(fā)的區(qū)別:并行和并發(fā)都是指多個程序,但不同的是并行在同一時刻可以同時執(zhí)行多個任務(wù),而并發(fā)在同一時刻只能執(zhí)行一個任務(wù),通過多道技術(shù)在空間上可以開啟多個程序,在時間上通過時間片的方式輪詢多個程序,從用戶的角度來看實現(xiàn)了多個程序同時執(zhí)行的偽并行,從CPU的角度同一時刻它只能執(zhí)行一個程序,所以說他是串行的,只不過是由于CPU切換速度太快我們無法從表面看出來而已。

并行是真正的同一時刻執(zhí)行多個程序,并發(fā)是通過時間輪詢的方式實現(xiàn)了偽并行。

阻塞與非阻塞:

阻塞:只要是涉及到I/O操作或者網(wǎng)絡(luò)請求的都屬于阻塞如read,recv,accept。

非阻塞:只要不涉及到I/O,網(wǎng)絡(luò)請求的在內(nèi)存中可以直接計算的就是非阻塞,例如:list.append(8),dict["a"]=1就是非阻塞。

相關(guān)推薦:

Python進程之并行與并發(fā)的區(qū)別

關(guān)于Python進程中串行與并行的區(qū)別問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI