今天給大家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中文網其它相關文章!
相關閱讀:
以上是asyncio 的優點與缺點的詳細內容。更多資訊請關注PHP中文網其他相關文章!