Contents
從基本概念和底層原理帶你入門 Python 3 非同步程式設計( Asynchronous Programming )
從這 37 分鐘的課程,你會學到
- 瞭解非同步程式設計的基本概念
- 關於併發,並行,同步,非同步等基本概念
- 如何實現協程,事件驅動
- asyncio 的基本語法
要求
- 已掌握 Python3 基本語法的 python 開發者
- 基本的程序執行緒( thread)、process 概念
課程說明
python 由於 GIL(全域性鎖)的存在,不能發揮多核的優勢,其效能一直飽受詬病。然而在 IO 密集型的網路程式設計裡,非同步處理比同步處理能提升成百上千倍的效率,彌補了python 效能方面的短板,如最新的微服務框架 japronto, resquests per second 可達百萬級。
python還有一個優勢是庫(第三方庫)極為豐富,運用十分方便。asyncio是 python3.4 版本引入到標準庫,python3.5 又加入了async/await特性。
以下PEP是本課程的參考資料:
- PEP 255 — Simple Generators
- PEP 342 — Coroutines via Enhanced Generators
- PEP 380 — Syntax for Delegating to a Subgenerator
- PEP 492 — Coroutines with async and await syntax
- PEP 525 — Asynchronous Generators
從這些 PEPs 中可以看出 Python 生成器 / 協程的發展歷程:先是 PEP 255 引入了簡單的生成器;接著 PEP 342 賦予了生成器 send() 方法,使其可以傳遞資料,協程也就有了實際意義;接下來,PEP 380 增加了 yield from 語法,簡化了呼叫子生成器的語法;然後,PEP 492 將協程和生成器區分開,使得其更不易被用錯;最後,PEP 525 提供了非同步生成器,使得編寫非同步的資料產生器得到簡化。
本課程就是從最基本的 yield 語法開始,讓大家瞭解協程和非同步背後實現的機理,然後再講解 asyncio 的基本的語法,從而讓大家對非同步和 asyncio 有深入的理解。
目標受眾
- 想了解 python3 非同步程式設計 Asynchronous Programming
- 想了解 asyncio 的基本使用
講師簡介
Peng Xiao 資深網路 DevOps 工程師 | “麥兜搞IT” ( 更多講師主講課程介紹 )
Peng Xiao 是一名網路和軟體 DevOps 工程師。
他在 IT/網路行業擁有超過 10 年的經驗,過去 12 年曾在 Cisco Systems、Nerdalize、KPN、ING 工作。
擅長Python編程(10年以上經驗)、網路技術尤其是 L3 路由協議、分佈式系統、資料庫等。他也喜歡開源技術,作為 GitHub 用戶加入了一些開源小組並做出了一些貢獻 給他們。
他是一名 scrum master,並擁有 Cisco Service Provider CCIE 認證。
他現在在荷蘭工作和生活。
他有個中文網站 “麥兜搞IT”
免費參加課程
也許你會有興趣
- Python 程式設計語言學習地圖
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
- 從 Soft & Share 各種社團頻道挑選你喜歡的加入
發表迴響