Python 异步随笔

gevent:

有猴子补丁,可以替代多线程,Python2.7以上版本可以稳定使用。

asyncio:

Python3.4以后版本出的标准库。利用yield from和coroutine装饰器来实现。本质是生成器回调的方式。Python3.5版本中改为了async和await的方式。与之相伴的是selector的出现,根据不同的平台选取相应的多路复用IO模型,如epoll、kqueue等。

tornado:

tornado自己实现了一套异步模块,个人感觉跟asyncio原理差不多,主要使用tornado.gen中的方法。

对个人要求

asyncio和tornado.gen异步的实现对程序员的个人能力要求较高,而gevent配合着flask使用可以做到写的代码跟同步是一个样子的,所以对程序员的要求较低。

asyncio和tornado的代码还没仔细研究,大概的是使用事件驱动的方式来实现异步的,都有一个event_loop。基本上都是通过某种方法把阻塞的地方yield出来,然后再send回去来完成异步的。

下面这条链接是个很好的Python的同步异步入门Tutorial for coroutine and concurrency

这篇文章里概括地讲解了asyncio的实现机制Python 标准库 18.5 - asyncio

简单的记录一下,以后会详细研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值