python異步與協(xié)程
異步編程:
- 異步I/O
- selet/poll/epoll
- 事件循環(huán) + 回調(diào)
- 共享狀態(tài)管理困難
- 錯(cuò)誤處理困難
python 異步庫(kù)
- 基于協(xié)程的解決方案
- Tornado
- Twisted
- asyncio
- gevent
- concurrent
asyncio
一镜悉、原理
生成器:創(chuàng)建一個(gè)字計(jì)算下個(gè)值是不會(huì)浪費(fèi)內(nèi)存空間的迭代器
-
協(xié)程: 可以暫停執(zhí)行的函數(shù)
? 利用生成器暫停的部分蛋济,將東西發(fā)送回生成器,就有了協(xié)程的概念
Future
Task
EventLoop
二、常用api
AbstractEventLoop.run_until_complete(*future*)
AbstractEventLoop.call_soon(*callback*, **args*)
AbstractEventLoop.call_later(*delay*, *callback*, **args*)
AbstractEventLoop.create_task(*coro*)
?