明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

asyncio 的優(yōu)勢與缺點

[摘要]今天給大家asyncio的優(yōu)點和缺點,學習異步IO一定要知道協(xié)程和asynico,那么asyncio到底是什么呢?要怎么使用asyncio呢?下面就給大家一一解答優(yōu)勢對異步 IO 任務異常好使編程模型更加簡單,負擔比較。豪 asyncio 拿到一個 event loop然后往這個 loop 中...
今天給大家asyncio的優(yōu)點和缺點,學習異步IO一定要知道協(xié)程和asynico,那么asyncio到底是什么呢?要怎么使用asyncio呢?下面就給大家一一解答

優(yōu)勢

對異步 IO 任務異常好使

編程模型更加簡單,負擔比較。

利用 asyncio 拿到一個 event loop

然后往這個 loop 中塞東西(協(xié)程)

操作系統(tǒng)看到的仍然是單線程,但是從宏觀角度看到的是“多并發(fā)”(每個語言差不多都是這樣:在用戶態(tài)上實現(xiàn)一套多線程模型 )

缺點

生態(tài)不成熟( 雖然有 aio-libs),要是 requests 這樣的庫也有對應的實現(xiàn)就好了(流行度也要高)

有一個前提假定:一個 App 必須從前到后都是異步的,這對許多歷史遺留項目是有負擔的

與 gevent + Python 2 對比

很多項目都是 Python 2 based,使用 gevent 效果很明顯

唯一擔心的地方是:gevent 會有很多 patch (hack 標準庫),而我們看到的是一個黑盒子,難免不放心

gevent 的效率不一定比 asyncio + async def 那一套的效率低哦

怎么使用

asyncio 作為我們的框架(我比較喜歡標準庫有的東西),async def/await 作為基本的設計手段

多多使用 aio-libs 中的各種 lib (必須從頭到尾都異步。。

相信看了這些案例你已經(jīng)掌握了方法,更多精彩請關注php中文網(wǎng)其它相關文章!


相關閱讀:

CSS網(wǎng)頁錯位怎么處理

怎樣用css3做出圖標效果

怎樣用canvas實現(xiàn)小球和鼠標的互動

以上就是asyncio 的優(yōu)勢與缺點的詳細內(nèi)容,更多請關注php中文網(wǎng)其它相關文章!


網(wǎng)站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產(chǎn)和維護的網(wǎng)站。