uselect
– 在一组流中等待事件¶
该模块实现相应 CPython
模块的子集,如下所示。更多信息,请参见
This module implements a subset of the corresponding CPython
module,
as described below. For more information, refer to the original
CPython documentation: python:select
.
该模块提供用以在流中等待事件的函数(选择用于操作的流)。
函数¶
-
uselect.
poll
()¶ 创建轮询类的实例。
-
uselect.
select
(rlist, wlist, xlist[, timeout])¶ 等待一组对象上的活动。
这个函数为兼容性设计,效率不高。建议使用
Poll
。
Poll
类¶
方法¶
-
poll.
register
(obj[, eventmask])¶ 注册用于轮询的
obj
。eventmask
是下列的逻辑或:select.POLLIN
- 用于读取的数据select.POLLOUT
- 可写入更多数据select.POLLERR
- 出现误差select.POLLHUP
- 检测到流结束/连接终止
eventmask 默认值为
select.POLLIN | select.POLLOUT
.
-
poll.
unregister
(obj)¶ 注销轮询的 obj 。
-
poll.
modify
(obj, eventmask)¶ 修改用于 obj 的 eventmask 。
-
poll.
poll
([timeout])¶ - 等待至少一个已注册对象准备就绪。返回元组的列表(
obj
,event
, …), event
元素为一个上述select.POLL*常量的组合,且指定流中发生的事件。元组中可能有其他元素,这取决于平台和版本,故请勿假设其大小为2。在超时情况下,则返回一个空列表。
超时以毫秒计。
与CPython区别
如上所述,返回的元组可能包括多于2个元素。
- 等待至少一个已注册对象准备就绪。返回元组的列表(
-
poll.
ipoll
([timeout])¶ 与
poll.poll()
类似,但是返回一个产生被调用函数所有元组的迭代器。该函数提供高效的、无位置的在流中进行轮询的方法。与CPython区别
该函数是MicroPython的扩展。