Python面试题库

Python中的twisted,tornado,gevent分析

2017-10-07  本文已影响964人  林锐波

Python中的twisted,tornado,gevent?

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

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

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

tornado见解

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

gevent见解

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

twisted见解

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

上一篇下一篇

猜你喜欢

热点阅读