擅长:python、mysql、java
<p>使用<a href="http://docs.python.org/library/threading.html?highlight=timer#timer-objects" rel="nofollow noreferrer">threading.Timer</a>在指定的延迟(程序所需的最大持续时间)后在单独的线程中运行函数,并在该函数中使用<a href="http://docs.python.org/library/thread.html#thread.interrupt_main" rel="nofollow noreferrer">^{<cd1>}</a>(注意它在模块<code>thread</code>,<strong>不是</strong>在模块<code>threading</code>中!)在主线程中引发键盘中断异常。在</p>
<p>一个更可靠的方法(万一脚本被塞进一些不可中断的非Python代码中,这样它就会忽略键盘中断)是生成一个“看门狗进程”,以便在需要时非常有力地终止错误的脚本(这样做<em>以及</em>上述方法,并比您使用的延迟稍晚一点,以使编写一个运行其析构函数、atexit函数等的机会(如果可行的话)。在</p>