Python에서 시간 초과로 함수 중단
무기한 중단될 수 있는 함수를 호출하여 스크립트가 더 이상 실행되지 않도록 하려면 다음이 필요합니다. 시간 초과 메커니즘을 구현합니다. Python의 signal 패키지는 이 문제에 대한 솔루션을 제공합니다.
UNIX 시스템에서 주로 사용되는 signal 패키지를 사용하면 특정 기능에 대한 시간 초과를 설정할 수 있습니다. 함수가 지정된 제한 시간을 초과하면 실행을 중단하라는 신호가 발생합니다.
예:
무한히 실행될 수 있는 loop_forever() 함수를 생각해 보세요. 이 함수를 호출해야 하지만 시간 초과를 5초로 설정합니다. 함수가 5초 이상 걸리면 실행을 취소하고 싶습니다.
import signal # Register a handler for the timeout def handler(signum, frame): print("Timeout! Cancelling function execution.") raise Exception("Timeout exceeded!") # Register the signal function handler signal.signal(signal.SIGALRM, handler) # Define a timeout of 5 seconds signal.alarm(5) try: loop_forever() except Exception as e: print(str(e)) # Cancel the timer if the function finishes before timeout signal.alarm(0)
이 예에서는 5초 후에 핸들러 함수가 호출되어 예외가 발생합니다. 이 예외는 상위 코드에서 포착되어 타이머를 취소하고 loop_forever() 함수의 실행을 종료합니다.
위 내용은 시간 초과로 Python 함수 실행을 중단하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!