Python進(jìn)程中串行與并行的區(qū)別?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)是專業(yè)的團(tuán)風(fēng)網(wǎng)站建設(shè)公司,團(tuán)風(fēng)接單;提供網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行團(tuán)風(fēng)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
串行和并行
串行指的是任務(wù)的執(zhí)行方式。串行在執(zhí)行多個(gè)任務(wù)時(shí),各個(gè)任務(wù)按順序執(zhí)行,完成一個(gè)之后才能進(jìn)行下一個(gè)。(早期單核CPU的情況下)
并行指的是多個(gè)任務(wù)在同一時(shí)刻可以同時(shí)執(zhí)行(前提是多核CPU),不需要等待。
同步和異步
所謂同步就是一個(gè)任務(wù)的完成需要依賴另外一個(gè)任務(wù)時(shí),只有等待被依賴的任務(wù)完成后,依賴的任務(wù)才能算完成,這是一種可靠的任務(wù)序列。要成功都成功,失敗都失敗,兩個(gè)任務(wù)的狀態(tài)可以保持一致需要等待、協(xié)調(diào)運(yùn)行。
所謂異步就是彼此獨(dú)立的,分配任務(wù)后,不需要等待該任務(wù)的執(zhí)行結(jié)果,繼續(xù)做自己的事,無論被分配的任務(wù)是執(zhí)行成功還是失敗都是不關(guān)心的,只要自己完成了整個(gè)任務(wù)就算完成了。至于其它任務(wù)是否真正完成無法確定,所以它是不可靠的任務(wù)序列。
小結(jié):
1、串行和同步的區(qū)別:串行指的是在早期單核CPU時(shí),一臺(tái)電腦在同一時(shí)刻只能執(zhí)行一個(gè)程序,如果想要運(yùn)行另一個(gè)程序需要關(guān)閉當(dāng)前程序,才能執(zhí)行下一個(gè)程序,是針對(duì)多個(gè)程序來說的。同步指的是在一個(gè)程序中同一時(shí)刻只能執(zhí)行一個(gè)任務(wù)。是針對(duì)一個(gè)程序中多個(gè)進(jìn)程或多個(gè)線程來說的。
所以兩者有著本質(zhì)上的區(qū)別。串行是針對(duì)多個(gè)程序,同步是針對(duì)一個(gè)程序內(nèi)部的多個(gè)進(jìn)程或多個(gè)線程的。
2、并行和異步的區(qū)別:并行指的是多核CPU,在同一時(shí)刻可以執(zhí)行多個(gè)程序。異步指的是在同一個(gè)程序內(nèi)可以執(zhí)行多個(gè)進(jìn)程或者多個(gè)線程。
兩者本質(zhì)上的區(qū)別就是并行指的是多個(gè)程序,異步指的是一個(gè)程序內(nèi)部的多個(gè)進(jìn)程和多個(gè)線程。
3、并行和并發(fā)的區(qū)別:并行和并發(fā)都是指多個(gè)程序,但不同的是并行在同一時(shí)刻可以同時(shí)執(zhí)行多個(gè)任務(wù),而并發(fā)在同一時(shí)刻只能執(zhí)行一個(gè)任務(wù),通過多道技術(shù)在空間上可以開啟多個(gè)程序,在時(shí)間上通過時(shí)間片的方式輪詢多個(gè)程序,從用戶的角度來看實(shí)現(xiàn)了多個(gè)程序同時(shí)執(zhí)行的偽并行,從CPU的角度同一時(shí)刻它只能執(zhí)行一個(gè)程序,所以說他是串行的,只不過是由于CPU切換速度太快我們無法從表面看出來而已。
并行是真正的同一時(shí)刻執(zhí)行多個(gè)程序,并發(fā)是通過時(shí)間輪詢的方式實(shí)現(xiàn)了偽并行。
阻塞與非阻塞:
阻塞:只要是涉及到I/O操作或者網(wǎng)絡(luò)請(qǐng)求的都屬于阻塞如read,recv,accept。
非阻塞:只要不涉及到I/O,網(wǎng)絡(luò)請(qǐng)求的在內(nèi)存中可以直接計(jì)算的就是非阻塞,例如:list.append(8),dict["a"]=1就是非阻塞。
相關(guān)推薦:
Python進(jìn)程之并行與并發(fā)的區(qū)別
關(guān)于Python進(jìn)程中串行與并行的區(qū)別問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。