gpt4 book ai didi

python线程事件: why do we need clear()

转载 作者:行者123 更新时间:2023-12-04 12:41:52 28 4
gpt4 key购买 nike

我对 Python 很陌生。我正在试用 threading模块。我遇到了 Event对象。
事件对象有wait set clear职能。我了解等待、设置和清除正在做什么。但是我不太明白为什么会有一个单独的清除方法。这不能包含在 set 方法实现中吗?
到目前为止,我看到的大部分代码都是 set方法后跟一个 clear方法。以便后续的wait方法调用wait。
我来自 Java 世界,我忍不住将它与等待和通知方法调用进行了比较。为了清楚起见,Java 中没有等效的方法调用。

是否有任何用例可以使用 set 但不明确的方法?

最佳答案

Is there any use case where one would use set but not clear method?



是的,如果您想在资源可用之前阻塞线程,这是一种无需轮询的方法。此资源可以是启动时未准备就绪的服务器、驱动程序或传感器。

另一个需要考虑的情况是如何在不需要线程时暂停线程。让我们以电池供电的安全摄像头为例。相机由运动传感器激活。就电池消耗而言,视频和音频很昂贵。运动传感器设置事件,直到计时器到期且未检测到新运动。一旦到期,该事件将被清除。这告诉视频和音频线程停止录制。

I come from Java world and I couldn't help but to compare this with wait and notify method calls.



java wait、notify 和notifyAll 方法与python 的线程处理条件的行为相匹配。当notify 或notifyAll 向线程发出信号时,一个等待线程一次获得对锁的控制。其他等待线程必须等到该线程释放该锁才能运行。

关于python线程事件: why do we need clear(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58088512/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com