Threading.Timer - 반복 기능에 대한 제어 유지
Python의 threading.Timer는 지정된 시간 간격으로 실행되도록 기능을 예약하는 메커니즘을 제공합니다. 그러나 start()에 대한 여러 호출을 사용하는 초기 접근 방식은 런타임 오류로 이어질 수 있습니다.
이 문제를 해결하려면 아래 솔루션에 설명된 대로 사용자 정의 스레드 클래스를 생성하는 것이 좋습니다.
import threading class MyThread(threading.Thread): def __init__(self, event, function): threading.Thread.__init__(self) self.stopped = event self.function = function def run(self): while not self.stopped.wait(0.5): self.function()
이 클래스에서는 중지된 이벤트를 사용하여 스레드의 실행을 제어합니다. 타이머를 여러 번 시작하고 중지하는 대신 스레드가 계속 실행되어 정기적으로 중지된 이벤트를 확인합니다. 이벤트가 설정되면 스레드가 종료됩니다.
타이머를 시작한 코드에서 중지된 이벤트를 사용하여 타이머를 중지할 수 있습니다.
stopFlag = threading.Event() thread = MyThread(stopFlag, function) thread.start() # To stop the timer later on stopFlag.set()
이 접근 방식은 깔끔한 작업을 제공합니다. 타이머를 시작, 중지 및 재설정하는 효율적인 방법을 제공하여 반복되는 기능 실행을 유연하게 제어할 수 있습니다.
위 내용은 Python의 threading.Timer를 사용하여 반복되는 함수에 대한 제어를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!