为什么在gevent中需要一个事件循环?

时间:2018-07-18 19:52:42

标签: python gevent

这是gevent的官方介绍。看完之后,我仍然不知道什么是gevent。看起来gevent是一个:

的集合
  • 基于libev或libuv的快速事件循环。
  • 基于greenlets的轻量级执行单元。
  • 可重用Python标准库中概念的API(例如,事件和队列)。
  • 具有SSL支持的协作套接字
  • 通过线程池,dnspython或c-ares执行的合作DNS查询。
  • 猴子修补实用程序,使第三方模块能够合作
  • TCP / UDP / HTTP服务器
  • 子流程支持(通过gevent.subprocess)
  • 线程池

我从未听说过有关JavaScript中事件循环的事情。事件和消息被实现为函数调用。没有循环。 而(true){}是错误的时期。

我的问题是:什么是gevent中的事件循环?我为什么需要它?

1 个答案:

答案 0 :(得分:2)

事件循环是每个异步事件系统的工作方式。有一个循环,检查事件并等待事件发生。当发生某些事情时,它处理事件-即它将调用一些代码,并且当该代码结束时,返回到循环。

当事情发生时,没有一种神奇的方法来调用代码-您需要循环检查条件并调用正确的代码。通常,该循环隐藏在库/框架内部,但这并不意味着它不存在。