asyncio 的優勢與缺點

2021-09-11 13:03:51 字數 600 閱讀 9170

>= python 3.5linux對非同步 io 任務異常好使

程式設計模型更加簡單,負擔比較小:

利用 asyncio 拿到乙個 event loop

然後往這個 loop 中塞東西(協程)

作業系統看到的仍然是單執行緒,但是從巨集觀角度看到的是「多併發」(每個語言差不多都是這樣:在使用者態上實現一套多執行緒模型 )

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

很多專案都是 python 2 based,使用 gevent 效果很明顯

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

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

(其實我有點粉 gevent,我們的專案大量使用 gevent,效果還不錯,好用為啥不用!)

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

多多使用 aio-libs 中的各種 lib (必須從頭到尾都非同步啊!)

iOS delegate的優勢及缺點

聯絡人 石虎暱稱 嗡嘛呢叭咪哄 一 delegate優勢 1.非常嚴格的語法。所有將聽到的事件必須是在 delegate 協議中有清晰的定義。2.如果 delegate 中的乙個方法沒有實現那麼就會出現編譯警告 錯誤 3.協議必須在 controller 的作用域範圍內定義 4.在乙個應用中的控制流...

aiohttp與asyncio實現併發爬蟲模式

第一回合 非同步併發居然和同步一樣工作 如下 執行後會發現還是乙個個url獲取內容,並沒有達到併發效果。第二回合 新增完全部任務併發執行async 這種模式下,如果urls中很多,就會連續不停新增非同步任務。第三回合 逐步新增任務併發執行sem asyncio.semaphore 30 目前用的就是...

資料庫外來鍵的優勢以及缺點

首先來說,主鍵和索引是不可少的,不僅可以優化資料檢索速度,也可以在一定程度上減少 的邏輯判斷。但說到外來鍵,就有兩個問題 一是對db資料完整性和一致性的影響 二是對效能的影響 優勢 1,由資料庫自身保證資料一致性,完整性,更可靠,因為程式很難100 保證資料的完整性,而用外來鍵即使在資料庫伺服器當機...