【发布时间】:2018-06-28 15:00:24
【问题描述】:
这可能是一个奇怪的请求。我有一个无限的 While 循环,每个循环持续约 7 分钟,然后程序休眠几分钟让计算机冷却下来,然后重新开始。
看起来是这样的:
import time as t
t_cooling = 120
while True:
try:
#7 minutes of uninterrupted calculations here
t.sleep(t_cooling)
except KeyboardInterrupt:
break
现在如果我想中断进程,我必须等到程序休眠 2 分钟,否则在运行周期中完成的所有计算都被浪费了。此外,计算涉及写入文件和使用multiprocessing,因此在计算阶段中断不仅是一种浪费,而且可能会损坏文件上的输出。
我想知道是否有办法向程序发出信号,表明当前循环是它必须执行的最后一个循环,这样就不会有在错误时刻中断的风险。要增加一个限制,它必须是一个通过命令行工作的解决方案。无法在运行程序的计算机上添加带有停止按钮的窗口。该机器具有基本的 Linux 安装,没有图形环境。计算机不是特别强大或新的,我需要尽可能多地使用 CPU 和 RAM。
希望一切都足够清楚。
【问题讨论】:
标签: python-2.7