gpt4 book ai didi

python - 如何在 Python 中使用计时器解锁条件?

转载 作者:行者123 更新时间:2023-12-05 07:21:46 26 4
gpt4 key购买 nike

我有一个锁定的条件变量,它处于等待状态。我想使用计时器从单独的线程通知它。获取锁成功,但是在调用notify时,抛出未获取锁的异常。

我在 Python 2.7 和 3.6 中尝试了不同的方法,它们的行为方式相同。

from threading import Timer, Lock, Condition

lock = Lock()
cond = Condition(lock)
timer = Timer(2, lambda: cond.notify_all())

with cond:
timer.start()
cond.wait()

我收到这个错误:

  File "c:\python27\Lib\threading.py", line 384, in notify
raise RuntimeError("cannot notify on un-acquired lock")

最佳答案

如前所述here ,问题是因为获取了锁并在两个单独的线程(主线程和计时器线程)上调用了通知。

您需要获取计时器线程中的锁才能从中调用通知。请详细描述您的用例,以便我们为您提供帮助并建议实现此目标的替代方案。

关于python - 如何在 Python 中使用计时器解锁条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56803390/

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