uselect – 在一组流中等待事件

该模块实现相应 CPython 模块的子集,如下所示。更多信息,请参见

This module implements a subset of the corresponding CPython module, as described below. For more information, refer to the original CPython documentation: select.

该模块提供用以在流中等待事件的函数(选择用于操作的流)。

函数

uselect.poll()

创建轮询类的实例。

uselect.select(rlist, wlist, xlist[, timeout])

等待一组对象上的活动。

这个函数为兼容性设计,效率不高。建议使用 Poll

Poll

方法

poll.register(obj[, eventmask])

注册用于轮询的 objeventmask 是下列的逻辑或:

  • select.POLLIN - 用于读取的数据
  • select.POLLOUT - 可写入更多数据
  • select.POLLERR - 出现误差
  • select.POLLHUP - 检测到流结束/连接终止

eventmask 默认值为 select.POLLIN | select.POLLOUT.

poll.unregister(obj)

注销轮询的 obj

poll.modify(obj, eventmask)

修改用于 objeventmask

poll.poll([timeout])
等待至少一个已注册对象准备就绪。返回元组的列表( objevent , …),
event 元素为一个上述select.POLL*常量的组合,且指定流中发生的事件。元组中可能有其他元素,这取决于平台和版本,故请勿假设其大小为2。在超时情况下,则返回一个空列表。

超时以毫秒计。

与CPython区别

如上所述,返回的元组可能包括多于2个元素。

poll.ipoll([timeout])

poll.poll() 类似,但是返回一个产生被调用函数所有元组的迭代器。该函数提供高效的、无位置的在流中进行轮询的方法。

与CPython区别

该函数是MicroPython的扩展。