Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
现代方式使用asyncio
Search
ipfans
November 25, 2018
Programming
0
42
现代方式使用asyncio
使用Python asyncio的一些姿势
ipfans
November 25, 2018
Tweet
Share
More Decks by ipfans
See All by ipfans
Event Modeling: 新项目沟通方式
ipfans
0
15
TDD, BDD and Beyond
ipfans
0
22
Go最差实践
ipfans
0
28
Go的版本管理之路
ipfans
0
51
Other Decks in Programming
See All in Programming
otelcol receiver 自作RTA / Pepabo Tech Conference #22 春のSREまつり
arthur1
0
660
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
13
4.3k
CQRS meets modern Java
simas
PRO
2
470
JavaScript Closure
asoluka
0
1.9k
RustでAWS Lambda functionをいい感じに書く
taiki45
2
150
Namespace, What and Why
tagomoris
3
660
FoodGram
iseruuuuu
0
230
TypeScriptの型とパフォーマンス (TSKaigi 2024)
ypresto
14
4.4k
The Cutting Edge Of Versioning (LambdaConf 2024)
chriskrycho
0
250
Node.js v22 で変わること
yosuke_furukawa
PRO
12
4.2k
Sheets API使ってみた
toshi0383
2
180
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
620
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
What's in a price? How to price your products and services
michaelherold
238
11k
Into the Great Unknown - MozCon
thekraken
15
1.1k
GraphQLとの向き合い方2022年版
quramy
33
13k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.7k
Code Reviewing Like a Champion
maltzj
515
39k
Adopting Sorbet at Scale
ufuk
69
8.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
14
8.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
4 Signs Your Business is Dying
shpigford
176
21k
Building an army of robots
kneath
300
41k
Transcript
现代⽅方式使⽤用asyncio Kevin
None
asyncio • 为什什么我们需要异步? • 为什什么选择asyncio? • 如何优雅的编写asyncio程序? • asyncio的其他
asyncio • 为什什么我们需要异步? • 为什什么选择asyncio? • 如何优雅的编写asyncio程序? • asyncio的其他
asyncio • 为什什么我们需要异步? • 为什什么选择asyncio? • 如何优雅的编写asyncio程序? • asyncio的其他
gevent/eventlet
gevent/eventlet
相⽐比gevent • 官⽅方⽀支持,未来的⽅方向 • 显式切换 • 显式处理理条件竞争问题更更容易易 • 显式控制上下⽂文切换,不不再踩坑 •
更更容易易兼容
asyncio • 为什什么我们需要异步? • 为什什么选择asyncio? • 如何优雅的编写asyncio程序? • asyncio的其他
举个例例⼦子
举个例例⼦子
举个例例⼦子
run&serve_forever
asyncio API
asyncio API • 优先使⽤用⾼高级API,提供更更简单的使⽤用⽅方法 • 只有在需要时,才选择使⽤用底层API
再举个例例⼦子
gather
contextvar
contextvar
async传染
async传染
async传染
async传染
Django Channels
flask
responder
asyncio调试 https://docs.python.org/3/library/asyncio-dev.html#debug-mode
aiomonitor
aiomonitor
asyncio • 为什什么我们需要异步? • 为什什么选择asyncio? • 如何优雅的编写asyncio程序? • asyncio的其他
其他:优化 • uvloop • 新版本也是⼀一种优化:
其他:注意事项 • 单独使⽤用asyncio仍旧是单线程模型 • 只有IO才可以并发 • asyncio会带来CPU压⼒力力 • event loop和上下⽂文切换在⾼高并发场景下仍旧有明显消耗
Thank You!