詳解Python的多任務(wù)進程
更新時間:2022年01月17日 08:41:55 作者:小Pawn爺
這篇文章主要為大家介紹了Python的多任務(wù)進程,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
1.基本概念
定義 | 含義 |
---|---|
并發(fā): | concurrency,同一時刻只能有一條指令執(zhí)行,但是多個線程的對應(yīng)的指令被快速輪換地執(zhí)行 |
并行 | parallel,同一時刻,有多條指令在多個處理器上同時執(zhí)行,并行必須要依賴于多個處理器 |
阻塞 | 程序未得到所需計算資源時被掛起的狀態(tài) |
非阻塞 | 程序在等待某操作過程中,自身不被阻塞,可以繼續(xù)處理其他的事情 |
同步 | 不同程序單元為了完成某個任務(wù),在執(zhí)行過程中需靠某種通信方式以協(xié)調(diào)一致,我們稱這些程序單元是同步執(zhí)行的 |
異步 | 為完成某個任務(wù),不同程序單元之間過程中無需通信協(xié)調(diào),也能完成任務(wù)的方式,不相關(guān)的程序單元之間可以是異步的 |
2.線程和進程比較
名稱 | 含義 | 應(yīng)用場景 |
---|---|---|
多線程 | 系統(tǒng)進行運算調(diào)度的最小單位 | IO密集型(磁盤IO ,網(wǎng)絡(luò)IO ,數(shù)據(jù)庫IO 等,譬如爬蟲,網(wǎng)站開發(fā)等) |
多進程 | 系統(tǒng)進行資源分配的最小單位 | CPU密集型(大數(shù)據(jù)分析,機器學(xué)習(xí)等) |
多協(xié)程 | 程序員級別的調(diào)度 | 高并發(fā)的場景 |
3.協(xié)程和線程的比較
多線程:
- 多個線程切換需要頻繁的加鎖解鎖,
- 需要保存或者恢復(fù)cpu上下文,
- 每個線程還需要有緩存cache等數(shù)據(jù)
多協(xié)程:
- 協(xié)程的切換是在單線程里實現(xiàn)任務(wù)的切換
- 且協(xié)程擁有自己的寄存器上下文和棧,無需線程上下文切換的開銷
- 無需原子操作鎖定及同步的開銷
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python中pivot()函數(shù)基礎(chǔ)知識點
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python中pivot()函數(shù)基礎(chǔ)知識點內(nèi)容,對此有興趣的朋友們可以參考學(xué)習(xí)下。2021-01-01python轉(zhuǎn)化excel數(shù)字日期為標(biāo)準(zhǔn)日期操作
這篇文章主要介紹了python轉(zhuǎn)化excel數(shù)字日期為標(biāo)準(zhǔn)日期操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07利用Python實現(xiàn)自動生成圖文并茂的數(shù)據(jù)分析
這篇文章主要介紹了利用Python實現(xiàn)自動生成圖文并茂的數(shù)據(jù)分析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08