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