Python 并发网络库

2019-05-15 14:11:57 浏览数 (1)

Python 并发网络库

Tornado VS Gevent VS Asyncio

  • Tornado:并发网络库,同时也是一个 web 微框架
  • Gevent:绿色线程(greenlet)实现并发,猴子补丁修改内置 socket
  • Asyncio:Python3 内置的并发网络库,基于原生协程
Tornado 框架

Tornado 适用于微服务,实现 Restful 接口

  • 底层基于 Linux 多路复用
  • 可以通过协程或者回调实现异步编程
  • 不过生态不完善,相应的异步框架比如 ORM 不完善
Gevnet

高性能的并发网络库

  • 基于轻量级绿色线程(greenlet)实现并发
  • 需要主要 monkey patch, gevent 修改了内置的 socket 改为非阻塞
  • 配合 gunicorn 和 gevent 部署作为 wsgi server
Asyncio

基于协程实现的内置并发网络库

  • Python3 引入到内置库,协程 事件循环
  • 生态不够完善,没有大规模生成环境检验
  • 目前应用不够广泛,基于 Aiohttp 可以实现一些小的服务

0 人点赞