2012-06-17 43 views
1

如何根据秒参数提供的时间在Python中执行函数。如何根据参数提供的时间在Python中执行函数

def timerfn(seconds, fn, *args): 
    #start some timer 
    #if function first launch is > "seconds", abort 
    #if function doing great.. repeat it and stop at "seconds" 

,因为我想在它time.clock()不能真正帮助在这里,因为一个功能可以真正艰难的,它永远不会达到反计时器显示出一些结果或中止。

我必须使用线程模块吗?我对线程知之甚少,但从我阅读的内容来看 - 根据GIL你可以只有一个线程工作,而且这个过程确实需要2个线程同时进行......或者其他一些我不知道的技巧。

+0

什么是'powerup'函数? – buc

+0

它只是表示,输入可以是任何功能,我应该删除它吗? – Umren

+0

几个非常有趣的答案在这里类似的问题:http://stackoverflow.com/questions/492519/timeout-on-a-python-function-call – tweet

回答

0

GIL意味着,总是只有一个线程正在运行,但这并不意味着您只能使用一个线程。

听起来像你想threading.Timer

+0

threading.Timer如何帮助这里?它可以动态地跳出无限循环或类似的东西吗? – Umren

+0

是的,如果你正确使用它,你可以使用它来设置一个事件(也在线程模块中),该事件脱离循环 – dav1d

相关问题