Threading.Timer: 지정된 간격으로 함수 반복
Python 스레드로 작업할 때, 특히 타이머를 반복적으로 시작하고 중지하려고 할 때, 그들의 행동을 이해하는 것이 중요합니다. threading.Timer를 사용하는 동안 발생하는 일반적인 문제 중 하나는 RuntimeError를 받는 것입니다.
런타임 오류:
이미 시작된 타이머를 시작하려고 하면 RuntimeError가 발생합니다. . 스레드는 일단 시작된 후에는 직접 다시 시작할 수 없기 때문입니다.
해결 방법:
이 문제를 해결하려면 전용 스레드를 사용하여 타이머 기능을 처리하는 것이 좋습니다. 접근 방법은 다음과 같습니다.
타이머 스레드 생성:
Thread에서 상속하고 타이머 로직을 통합하는 사용자 정의 스레드 클래스(MyThread)를 사용합니다.
import threading class MyThread(threading.Thread): def __init__(self, event): Thread.__init__(self) self.stopped = event def run(self): while not self.stopped.wait(0.5): print("my thread") # call your function here
타이머 시작 및 중지:
타이머를 시작하는 코드에서 stopFlag 이벤트를 생성하고 이를 사용하여 타이머가 중지되어야 할 때 신호를 보냅니다.
stopFlag = threading.Event() thread = MyThread(stopFlag) thread.start() # Start the timer thread once # To stop the timer, set the stopFlag event stopFlag.set()
이 접근 방식의 장점:
위 내용은 Python에서 threading.Timer를 사용할 때 RuntimeError를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!