使用while语句持续监视状态

时间:2012-01-25 03:31:46

标签: python

我正在尝试使用While True语句持续监视设备的状态。该项目即将完成。我把它投入生产时遇到了问题。

代码:

while True:
    # monitor the state of this device..
    # when ever this device state changes .
    # raise an alert.
    # 
    break

这是它运作的算法。但是当我尝试连续监视系统时,CPU正在不断使用,并且脚本不断使用大约30%的CPU。我想把它减少到零。在python中可以吗?

我无法使用time.sleep(sec),因为这必须非常精确。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

什么是“设备”,它实际上是一个像硬件一样的设备吗?或者它是你的软件组件?

不要连续轮询,您需要重新设计,以便在设备状态更改时发出信号,并且您可以使用回调函数注册对该信号的兴趣。

你应该google观察者设计模式,这是我过去使用的一个很好的python示例:http://code.activestate.com/recipes/131499-observer-pattern/

答案 1 :(得分:0)

很可能

运行这个:

while True:
    pass

请注意,您的cpu现已固定为100%使用(或至少1核心)。