超时等待状态更改(变量更改)的有效方法?

问题描述:

我确定这有点常见,所以我很好奇在Python中做什么的可接受/有效的方法。超时等待状态更改(变量更改)的有效方法?

简而言之,我只是忙着等待变量被更新。同时我需要一个暂停计划,但我觉得必须有更好的方式来做到这一点。

目前,我做这样的事情:

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

# Continuing on... 

我明明只是无法入睡,因为我需要的时候状态发生了变化就知道了。

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

+0

ouch。当状态!= NEW_STATE时,你会吃掉cpu周期,确切地检查它 – 2011-06-08 15:56:33

+0

,我想到了信号,但我只是想到,这种事情有一个公认的最佳实践 – 2011-06-08 16:42:41

Condition variablesevents通常用于这种类型的东西。两者都需要从改变变量的方面进行合作。