Threading.Timer: 지정된 간격으로 함수 반복
Python의 threading.Timer 모듈은 지정된 시간에 함수가 실행되도록 예약하는 편리한 방법을 제공합니다. 간격. 그러나 사용자가 이러한 타이머의 실행을 제어하려고 할 때 문제가 발생할 수 있습니다.
한 가지 일반적인 문제는 타이머를 다시 시작할 때 발생하는 RuntimeError입니다. 그 이유는 threading.Timer 객체가 한 번만 시작될 수 있기 때문입니다. 이 문제를 해결하려면 동일한 타이머를 여러 번 다시 시작하는 대신 타이머를 관리하는 별도의 스레드를 생성하는 것이 좋습니다.
다음은 이 접근 방식을 구현하는 방법의 예입니다.
import threading import time def my_function(): print("Function called") # Create an event to signal when the thread should stop stop_event = threading.Event() # Define a thread class that runs the timer class TimerThread(threading.Thread): def run(self): while not stop_event.is_set(): # Execute the function at specified intervals time.sleep(0.5) my_function() # Create and start the timer thread timer_thread = TimerThread() timer_thread.start() # Pause the timer by setting the stop_event time.sleep(5) stop_event.set() # Wait for the thread to finish timer_thread.join()
이 예에서 TimerThread는 한 번 시작되고 무한정 실행되며 타이머 로직은 run() 메서드 내에 캡슐화됩니다. 타이머를 제어하려면 스레드에 실행 중지 신호를 보내도록 stop_event를 설정할 수 있습니다. 이 접근 방식은 타이머에 대한 더 나은 제어를 제공하고 타이머 개체 다시 시작과 관련된 RuntimeError를 방지합니다.
위 내용은 Python에서 `threading.Timer` 개체를 다시 시작할 때 RuntimeError를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!