【发布时间】:2018-06-10 16:07:04
【问题描述】:
我正在尝试使用以下算法检测系统挂起:
while True:
lastchecked = now()
if now() - lastchecked > 1s: print "suspend detected!"
但是我遇到了一个问题:如果挂起发生在第 2 行和第 3 行之间,那么循环会捕获它。但是如果挂起发生在第一行和第二行之间,那么算法就会失败。
这种情况有什么常用的方法吗?最好是独立于操作系统的,我不想挂钩操作系统事件等。
【问题讨论】:
-
看起来像XY problem。请添加您想要达到的目标的详细信息 - 一定有比投票更好的方法。
-
在绝大多数情况下,您不需要检查系统是否挂起——一个设计良好的算法会简单地从它停止的地方继续。这就是系统挂起的全部目的。
-
我的程序是一种系统监视器类型的应用程序——它需要知道系统是否进入休眠状态以及休眠了多长时间。