【问题标题】:Efficient way to timeout waiting for a state change (variable change)?超时等待状态更改(变量更改)的有效方法?
【发布时间】:2011-06-08 15:54:23
【问题描述】:

我确信这有点普遍,所以我很好奇在 Python 中接受/有效的方法是什么。

简单地说,我只是在忙着等待一个变量被更新。同时我需要一个超时方案,但我觉得必须有更好的方法来做到这一点。

目前我做这样的事情:

wait_start = time.time()
while state != NEW_STATE:
    if time.time() - wait_start > timeout:
        print "Timed out!"
        # Do something

# Continuing on...

我显然无法入睡,因为我需要知道状态何时发生变化。

那么什么是实现状态(变量)更改超时的有效方法?

【问题讨论】:

  • 哎哟。当 state != NEW_STATE 时,你会吃掉 CPU 周期来检查它
  • 没错,我考虑过信号,但我只是认为这种事情有公认的最佳实践

标签: python performance timeout


【解决方案1】:

Condition variablesevents 通常用于此类事情。两者都需要改变变量的一方的合作。

【讨论】:

    猜你喜欢
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2015-05-16
    • 2020-06-21
    • 2019-03-16
    • 1970-01-01
    相关资源
    最近更新 更多