Python中的twisted,tornado,gevent分析?

Python中的twisted,tornado,gevent?

  • gevent
    Python的并发框架

代码看起来好看一些,但是维护比较差,patch没有规律,而且里面封装了C,对python3的支持最差.

  • twisted
    Python的事件驱动,异步执行任务的网络框架框架

稳定性是最好的,但是需要较长时间的学习.对python3的支持较差.

  • tornado
    Python的web开发框架

兼容性最好.但是过于简单了,功能不强,另外没有python数据库适配器能和tornado无缝对接,因此调用数据库很麻烦,而且只支持web.

tornado见解

tornado虽然是一个异步框架,但是也仅仅是框架而已,他只是实现了get或者post方法相对于返回消息的异步处理,但是毕竟是单进程单线程的,通过一个事件队列来对所有经过了自己事件化的事物做的分片处理,遇到执行一个没有异步化的命令,比如有IO操作的命令(或者耗时的命令),自然框架就无能为力了,虽然他自己实现了一些异步的工具,比如AsyncHttpClient,但是还是太少了,比如访问数据库的网络IO,等待数据库返回数据,向redis请求数据等等,绝大部分关键的操作其实都是包含了blocking的IO操作的.

gevent见解

gevent可以说实现的比较彻底,他把所有的sockt,disk 的IO操作都做了协程化处理,所以结合结合到tornado的异步化框架,效果肯定要好不少,特别是那种处理过程中涉及到IO操作频繁的场景,更为明显.

twisted见解

他支持很多种协议,包括UDP,TCP,TLS和其他应用层协议,这点非常好,开发人员可以直接只用这些协议的实现.

    原文作者:林锐波
    原文地址: https://www.jianshu.com/p/3aaf8f0984a2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞