Python中的实时中断

Python中的实时中断,python,performance,python-2.7,time,interrupt,Python,Performance,Python 2.7,Time,Interrupt,我有一个运行无限while循环的Python2.7程序,我想加入一个计时器中断。 我的目标是在循环中的某个点设置计时器,当5秒过去后,我希望代码分支到while循环的特定部分 到目前为止,我所做的工作如下: 在while循环的每一次迭代中,我都会检查当我在代码中使用 time.clock() 如果差值超过5,我就运行我想运行的代码块 然而,在我评估时间之前,7秒可能会过去,它将是>5秒,但我想在5秒过去时准确地去那里 此外,我需要这个工作超过1个计数器(可能高达100),但我不希望中断相互中断

我有一个运行无限while循环的Python2.7程序,我想加入一个计时器中断。 我的目标是在循环中的某个点设置计时器,当5秒过去后,我希望代码分支到while循环的特定部分

到目前为止,我所做的工作如下: 在while循环的每一次迭代中,我都会检查当我在代码中使用

time.clock()
如果差值超过5,我就运行我想运行的代码块

然而,在我评估时间之前,7秒可能会过去,它将是>5秒,但我想在5秒过去时准确地去那里

此外,我需要这个工作超过1个计数器(可能高达100),但我不希望中断相互中断。使用计时器也不起作用


我知道这可以通过在汇编中使用计时器中断来实现,但是在python中如何实现呢?

如果要处理单个事件,那么最简单的方法就是使用
信号
框架,它是一个

然而,如果我们需要一个成熟的调度器,那么我们必须求助于另一个模块:
sched
。是指向官方文档的指针。但是,请注意,在多线程环境中,sched在线程安全方面有限制

另一个选项是,它不是标准发行版的一部分。

没有特殊的硬件/软件支持,您无法获得。在大多数情况下,您不需要它()

如何将几个函数调用延迟已知的秒数取决于您的需要,例如,如果运行函数所需的时间与调用之间的延迟相比可以忽略不计,则您可以:


它实现了您的“我也不希望中断相互中断”,因为在上一次回调完成之前不会调用下一次回调。

与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。看,从我对python的有限经验来看,我理解的是信号或计时器可以用于一个事件,我如何能够生成这样的事件的动态数组?这是很麻烦的,所以我发送帧,我希望每个帧都有一个计时器,如果一个帧在它自己的计时器启动之前没有得到确认,那么当计时器启动时,我想重新发送该帧,如果timer2在我发送帧时启动,它必须等待,除了在代码中的指定位置外,没有中断
#!/usr/bin/env python
from __future__ import print_function
from Tkinter import Tk

root = Tk()
root.withdraw() # don't show the GUI window
root.after(1000, print, 'foo') # print foo in a second
root.after(0, print, 'bar') # print bar in a jiffy
root.after(2000, root.destroy) # exit mainloop in 2 seconds
root.mainloop()
print("done")