我正在尝试使用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)
,因为这必须非常精确。请帮我解决这个问题。
答案 0 :(得分:2)
什么是“设备”,它实际上是一个像硬件一样的设备吗?或者它是你的软件组件?
不要连续轮询,您需要重新设计,以便在设备状态更改时发出信号,并且您可以使用回调函数注册对该信号的兴趣。
你应该google观察者设计模式,这是我过去使用的一个很好的python示例:http://code.activestate.com/recipes/131499-observer-pattern/
答案 1 :(得分:0)
运行这个:
while True:
pass
请注意,您的cpu现已固定为100%使用(或至少1核心)。