2018-03-12

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*)

你可能感兴趣的:(2018-03-12)