Python中的实时中断

Sta*_*yer 7 python performance time interrupt python-2.7

我有一个运行无限循环的Python 2.7程序,我想要合并一个定时器中断.我的目的是在循环中的某个点设置一个计时器,当经过5秒后,我希望代码分支到while循环的特定部分.

到目前为止我一直在做的是:在while循环的每次迭代中,我正在检查当我使用代码中的那个点时经过了多长时间

time.clock()
Run Code Online (Sandbox Code Playgroud)

如果差异超过5,我运行我想要运行的代码块

然而,在我评估时间之前,这种方式可能会持续7秒,但是它会超过5秒,但是我希望在5秒钟后完全通过

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

我知道这可以在程序集中使用定时器中断来完成,但我怎么能在python中做到这一点?

Rob*_*ale 6

如果要处理单个事件,那么最简单的方法是使用signal框架,它是Python标准模块.

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

另一个选项是Advanced Python Scheduler,它不是标准发行版的一部分.