gevent

 gevent提供wsgi支持,只要是支持wsgi的框架都可以和gevent一起用

tornado用wsgi就无法用自家的异步了
但是gevent本身就是异步的
因为wsgi没有规定异步实现

gevent注意事项

1. gevent.server.StreamServer会针对每个客户端连接启动一个greenlet处理,要注意的是,如果不循环监听(阻塞在read )

每个greenlet会在完成后立即退出,从而导致客户端退出(发送FIN_ACK给客户端 )。这个问题折腾了一晚上,终于弄明白了。坑爹啊。。。

 

2. 要非常仔细的检查,greenlet处理的代码,发现有可能阻塞IO的地方,尽量用gevent提供的库。

 

3. 一些第三方库隐藏了自己的实现(通常是直接封装C库),要使得gevent兼容它们,可以用monkey_patch,但不保证全部管用。

 

4. 最后最后的一点,geventgreenlet性能非常高,所以如果是用它作为并发的client端,那么一定要注意,你的server端处理速度一定要足够快!

否则你的客户端代码会因为服务端的慢速,而失去了greenlet的优势。。。

http://blog.csdn.net/tianmo2010/article/details/7892508

其实是把标准库里的socket给换成greenlet的non-blocking版本了

之后的线程支持都是greenlet了

就是传说中的协程

 

gevent用monkey可以直接把python的线程变成greenlet

 

from gevent import monkey
from flask_app import app

"""
Monkey补丁让Python线程模式支持Gevent
"""
monkey.patch_all()

协程你可以理解为单线程无锁版线程,线程调度由你自己来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值