如何判断等待事件是否超时?
这段代码是用来处理线程的。首先,它导入了一个叫做`threading`的模块,然后创建了一个事件对象`event`。接着,`event.set()`这行代码是把这个事件的状态设置为“已触发”。然后,代码会等待1秒钟,看看这个事件的状态。因为事件已经被触发,所以`event.wait(1)`会返回`None`,表示没有问题。
接下来,`event.clear()`这行代码是把事件的状态清除,也就是变成“未触发”。然后,再次调用`event.wait(1)`,这次它同样会等待1秒钟,但因为事件没有被触发,所以它也会返回`None`。
所以,不管事件是触发还是未触发,`event.wait(1)`都会返回`None`。这样一来,我就无法区分是因为超时导致的返回,还是根本没有等待就返回了。同时,文档中提到:
这个方法在退出时会返回内部标志,所以它总是会返回`True`,除非给定了超时时间并且操作超时了。
我是不是漏掉了什么?
2 个回答
3
这个方法在退出时会返回一个内部标志,所以它几乎总是会返回
True
,除非你设置了超时时间,并且操作超时了。在2.7版本中进行了更改:之前这个方法总是返回
None
。
你正在使用哪个版本的Python?
3
是的,你漏掉了文档中的下一句话,内容是:
在2.7版本中更改:之前,这个方法总是返回None。