GitXplorerGitXplorer
c

taichung.py_talk

public
1 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
ddd777c74296038bb2886d42d7ab1a9b9d554bb9

Update sample code

cchairco committed 6 years ago
Unverified
e4463b0735a7e9018007a1ed3a5f2df2e1648510

Add alog pacakge

cchairco committed 6 years ago
Unverified
4a19a2c647421e297dc1e5c5ba8c2f37fd7ae58f

Update code

cchairco committed 6 years ago
Unverified
7ab00b6d48ec7bb125fd716bdc225a00bbe72d14

Delete duplicate code

cchairco committed 6 years ago
Unverified
0695fc9e19a4d623f5eff02df5bd102a7eea6233

Add sample code

cchairco committed 6 years ago
Unverified
fb777b40ecb6a714a9d59383eb92acf39623d47c

Add .gitignore

cchairco committed 6 years ago

README

The README file for this repository.

taichung.py.talk 分享

20181013 搞懂 Python 協同程序(Coroutine): 快樂學會非同步程式開發

投影片

摘要

單一執行緒(single thread)底下允許程式來決定程式執行的順序,是基於協同程序(Coroutine)來實現非同步的其中一種策略。因為 Python(CPython) 的 GIL(Global Interpreter Lock) 特性,這個方法提供了解決某些類型非同步問題。

Python 基本上是以同步程式開發精神為設計,因此 Python 非同步開發與同步開發是兩種不同的思維與世界。本次將會分享 Python 使用協同程序開發非同步與其概念,並且如何手寫一個協同程序,接續介紹 3.5 版後的 asycawait 語法所創造的協同程序

分享的最後會以一個 Serial port 範例來 Demo 如何快快樂樂實現 Python 非同步程式開發。

大綱

  • 非同步的策略介紹
  • 非阻塞式事件驅動與 Coroutine 的非同步策略
  • 協同程序(Coroutine)是什麼?可以吃嗎?(透過一個同步且阻塞式的 Socket 來連接網頁做範例程式說明)
    • Non-blocking I/O
    • Callback
    • Event loop
    • Coroutine
  • 登愣!async, await 登場
    • async 語法所創造協同程序
    • async 語法所創造產生器
    • 怎麼使用 asyncio 的 event loop 來建立事件迴圈並開發非同步程式
  • Demo
    • serial port

講者簡介

喜愛使用 Python 開發軟體,目前是一位資料與數據分析工程師。喜歡貓貓與狗狗,因此假日的嗜好就是帶著另一半去餵食浪浪們。

more: https://chairco.github.io

文章參考