gevent.selectors --高级IO多路复用#

本模块提供 GeventSelector ,一种高级IO多路复用机制。这是别名为 DefaultSelector

此模块提供与中定义的选择器相同的API selectors .

在Python2上,只有在 selectors2 后端口已安装。

在 20.6.0 版本加入.

DefaultSelector#

GeventSelector 的别名

class GeventSelector(hub=None)[源代码]#

基类:_BaseSelectorImpl

使用选择器原语的gevent实现。

这是一种 selectors.BaseSelector ,因此该类的文档在这里适用。

小心

正如基类所示,在关闭文件对象之前注销它们是非常重要的。(或在关闭它们之前关闭它们注册的选择器。)否则可能会导致进程崩溃或产生其他意外结果。

close()[源代码]#

关闭选择器。

必须调用它以确保释放任何底层资源。

register(fileobj, events, data=None)[源代码]#

注册文件对象。

参数:fileobj—文件对象或文件描述符事件—要监视的事件(按位掩码事件_READ | EVENT_WRITE)数据—附加数据

返回:SelectorKey实例

引发:ValueError如果事件无效KeyError如果fileobj已注册,则为Error;如果fileobj已关闭或无法接受,则返回Error

底层系统调用(如果进行了系统调用)

注意:OSError可能会出现,也可能不会出现

select(timeout=None)[源代码]#

轮询I/O。

请注意,与内置选择器一样,如果没有超时,并且没有注册文件,则此选项将无限期阻塞。

unregister(fileobj)[源代码]#

注销文件对象。

参数:fileobj—文件对象或文件描述符

返回:SelectorKey实例

如果fileobj未注册,则引发:KeyError

注意:如果fileobj已注册但已关闭,则会注册 not 引发OSError(即使包装好的系统调用确实如此)