2012-06-17 58 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

相關問題