GitXplorerGitXplorer
c

taichung.py_talk

public
1 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
fd1334432d5ce0ffd934c2255f7d549167548cc2

Add demo pipfile

cchairco committed 6 years ago
Unverified
a783536bd2f49a55964c5549da8b8dd445c088e4

Update README.md

cchairco committed 6 years ago
Unverified
9917ccc0a01f334526f592e2d0bad5c23b37175b

Update README.md

cchairco committed 6 years ago
Unverified
5ade9995fb2f6f5acd0cbec205558e73cc06e1b8

Update README.md

cchairco committed 6 years ago
Unverified
f66224a804f1e1531971243fa52c5a5a7e7d8214

Update README.md outline

cchairco committed 6 years ago
Unverified
511aa4945b24f835129cdb0008295a77af12597e

Update README.md

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

文章參考