python异步与协程
异步编程:
- 异步I/O
- selet/poll/epoll
- 事件循环 + 回调
- 共享状态管理困难
- 错误处理困难
python 异步库
- 基于协程的解决方案
- Tornado
- Twisted
- asyncio
- gevent
- concurrent
asyncio
一、原理
生成器:创建一个字计算下个值是不会浪费内存空间的迭代器
-
协程: 可以暂停执行的函数
利用生成器暂停的部分,将东西发送回生成器,就有了协程的概念
Future
Task
EventLoop
二、常用api
AbstractEventLoop.run_until_complete(*future*)
AbstractEventLoop.call_soon(*callback*, **args*)
AbstractEventLoop.call_later(*delay*, *callback*, **args*)
AbstractEventLoop.create_task(*coro*)