uselect – 在一组流中等待事件¶
该模块实现了相应的 CPython 模块的子集,如下所述。有关更多信息,请参考原始CPython文档:select。
该模块提供的功能可以有效地等待多个 streams (选择准备进行操作的流) 上的事件。
- 
uselect.select(rlist, wlist, xlist, timeout)[源代码]¶
- 等待一组对象上的活动。该函数效率不高,推荐使用poll函数。 - 参数
- rlist – 读列表 
- wlist – 写列表 
- xlist – 执行列表 
- timeout – 超时时间,单位为ms 
 
- 返回
- 空 
 
类¶
poll类,调用uselect.poll()后返回的示例
- 
poll.register(obj, eventmask)[源代码]¶
- 在轮询对象中注册 - stream目标用来轮询。 eventmask 是可选的位掩码,用于指定要检查的事件类型, 默认值是 uselect.POLLIN | uselect.POLLOUT。- uselect.POLLIN - 可供读取的数据 
- uselect.POLLOUT - 更多可供写入的数据 
 - 注意 - 诸如uselect.POLLHUP和uselect.POLLERR之类的标志不能作为输入事件掩码使用(这些是未经请求的事件,无论是否要求,它们都会从poll() 返回), 此语义是根据POSIX定义的。 - 可以为同一obj多次调用此函数,连续调用会将obj的事件掩码更新为事件掩码的值。 
- 
poll.poll(timeout)[源代码]¶
- 等待至少一个已注册的对象准备就绪或处于异常状态,并带有以毫秒为单位的可选超时(如果未指定timeout参数或指定为-1,则持续等待)。 - 返回(obj,event,…)元组的列表, 元组中可能还有其他元素,具体取决于平台和版本,因此不要假定其大小为2。 - event元素指定流中发生了哪些事件,并且是上述uselect.POLLIN / uselect.POLLOUT 常量的组合。 - 注意 - 标记uselect.POLLHUP和uselect.POLLERR可以在任何时候返回(即使未要求), 并且必须相应地对其进行操作(相应的流已从poll中注销,并且可能已关闭), 因为否则将进一步调用poll() 可能会立即返回,并再次为此流设置这些标志。 - 如果超时,则返回一个空列表。