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