看到一个flask+gevent 实现的简单聊天室,https://github.com/sdiehl/minichat/blob/master/app.py
为什么最后要用WSGIServer包装app, 否则就实现不了功能呢。
看到一个flask+gevent 实现的简单聊天室,https://github.com/sdiehl/minichat/blob/master/app.py
为什么最后要用WSGIServer包装app, 否则就实现不了功能呢。
人家用的是gevent的wsgi,而不是用werkzeug的WSGI server 主要是因为 gevent内部是单线程 协程调度的,所以为了支持协程的调度(异步IO等待时不阻塞,而当前线程可以去处理别的请求),所以需要gevent的调度器原生支持。可以看gevent的wsgi是pywsgi的源码实现,你如果用werkzeug的WSGI server就不能对同一线程的不同协程进行调度,而只能对线程级别调度,虽然flask本身是对greenlet的协程本身是支持的,但是请求调度器不换,支持了也没用
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
应该是为了配合gevent的异步io