您好,登錄后才能下訂單哦!
不懂關于Python中的asyncio庫-asyncio簡介與關鍵字?其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。
官網非常推薦的一個實現高并發的一個模塊是asyncio,在網絡的高響應、高請求的場景下,高并發的實現越來越重要,python也是在python 3.4中引入了協程的概念,現在來好好學習下asyncio的原理和使用。
asyncio 是干什么的?
異步網絡操作
并發
協程
python3.0時代,標準庫里的異步網絡模塊:select(非常底層) python3.0時代,第三方異步網絡庫:Tornado python3.4時代,asyncio:支持TCP,子進程
現在的asyncio,有了很多的模塊已經在支持:aiohttp,aiodns,aioredis等等 https://github.com/aio-libs 這里列出了已經支持的內容,并在持續更新
當然到目前為止實現協程的不僅僅只有asyncio,tornado和gevent都實現了類似功能
關于asyncio的一些關鍵字的說明:
event_loop 事件循環:程序開啟一個無限循環,把一些函數注冊到事件循環上,當滿足事件發生的時候,調用相應的協程函數
coroutine 協程:協程對象,指一個使用async關鍵字定義的函數,它的調用不會立即執行函數,而是會返回一個協程對象。協程對象需要注冊到事件循環,由事件循環調用。
task 任務:一個協程對象就是一個原生可以掛起的函數,任務則是對協程進一步封裝,其中包含了任務的各種狀態
future: 代表將來執行或沒有執行的任務的結果。它和task上沒有本質上的區別
async/await 關鍵字:python3.5用于定義協程的關鍵字,async定義一個協程,await用于掛起阻塞的異步調用接口。
看了上面這些關鍵字,你可能扭頭就走了,其實一開始了解和研究asyncio這個模塊有種抵觸,自己也不知道為啥,這也導致很長一段時間,這個模塊自己也基本就沒有關注和使用,但是隨著工作上用python遇到各種性能問題的時候,自己告訴自己還是要好好學習學習這個模塊。
感謝你能夠認真閱讀完這篇文章,希望小編分享關于Python中的asyncio庫-asyncio簡介與關鍵字內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。