asyncio 的優(yōu)勢與缺點
發(fā)表時間:2023-12-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]今天給大家asyncio的優(yōu)點和缺點,學(xué)習(xí)異步IO一定要知道協(xié)程和asynico,那么asyncio到底是什么呢?要怎么使用asyncio呢?下面就給大家一一解答優(yōu)勢對異步 IO 任務(wù)異常好使編程模型更加簡單,負(fù)擔(dān)比較。豪 asyncio 拿到一個 event loop然后往這個 loop 中...
今天給大家asyncio的優(yōu)點和缺點,學(xué)習(xí)異步IO一定要知道協(xié)程和asynico,那么asyncio到底是什么呢?要怎么使用asyncio呢?下面就給大家一一解答
優(yōu)勢
對異步 IO 任務(wù)異常好使
編程模型更加簡單,負(fù)擔(dān)比較小:
利用 asyncio 拿到一個 event loop
然后往這個 loop 中塞東西(協(xié)程)
操作系統(tǒng)看到的仍然是單線程,但是從宏觀角度看到的是“多并發(fā)”(每個語言差不多都是這樣:在用戶態(tài)上實現(xiàn)一套多線程模型 )
缺點
生態(tài)不成熟( 雖然有 aio-libs),要是 requests 這樣的庫也有對應(yīng)的實現(xiàn)就好了(流行度也要高)
有一個前提假定:一個 App 必須從前到后都是異步的,這對許多歷史遺留項目是有負(fù)擔(dān)的
與 gevent + Python 2 對比
很多項目都是 Python 2 based,使用 gevent 效果很明顯
唯一擔(dān)心的地方是:gevent 會有很多 patch (hack 標(biāo)準(zhǔn)庫),而我們看到的是一個黑盒子,難免不放心
gevent 的效率不一定比 asyncio + async def 那一套的效率低哦
怎么使用
asyncio 作為我們的框架(我比較喜歡標(biāo)準(zhǔn)庫有的東西),async def/await 作為基本的設(shè)計手段
多多使用 aio-libs 中的各種 lib (必須從頭到尾都異步。。
相信看了這些案例你已經(jīng)掌握了方法,更多精彩請關(guān)注php中文網(wǎng)其它相關(guān)文章!
相關(guān)閱讀:
CSS網(wǎng)頁錯位怎么處理
怎樣用css3做出圖標(biāo)效果
怎樣用canvas實現(xiàn)小球和鼠標(biāo)的互動
以上就是asyncio 的優(yōu)勢與缺點的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。