GEvent没有阻塞和等待套接字操作完成(一种称为轮询的技术),而是安排操作系统传递一个事件,让它知道何时到达要从套接字读取的数据。这样做之后,gevent可以继续运行另一个greenlet,也许它本身已经准备好了一个事件。注册事件并在事件到达时对其作出反应的重复过程是事件循环。
与其他网络库不同,尽管与eventlet的方式类似,gevent在专用greenlet中隐式地启动事件循环。没有 你必须打电话给 或 功能开启。当gevent的api中的函数想要阻塞时,它将获取 实例——运行事件循环的特殊greenlet——并切换到它(据说greenlet 屈服 控制中心)。如果没有 但是,会自动创建一个实例。
默认情况下,事件循环使用系统上可用的最佳轮询机制。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/2614.html