Python의 함수 시간 초과 처리
무기한 실행될 수 있는 함수를 호출하거나 스크립트 종료가 필요한 문제가 발생할 때 시간 초과 메커니즘이 유용합니다. . Python에서는 다음 방법을 활용하여 함수 시간 초과를 적절하게 처리할 수 있습니다.
signal 모듈 사용:
UNIX 시스템에서 실행하는 경우 signal 패키지는 다음을 제공합니다. 시간 초과를 처리하는 방법. 타임아웃 핸들러를 등록하면 미리 정해진 시간 제한을 초과하는 경우 함수 실행을 취소할 수 있습니다. 다음은 signal을 사용한 예입니다.
import signal # Register a handler for the timeout def handler(signum, frame): print("Forever is over!") raise Exception("end of time") # Define a potentially long-running function def loop_forever(): import time while 1: print("sec") time.sleep(1) # Set up the signal handler signal.signal(signal.SIGALRM, handler) # Define the timeout duration (in seconds) timeout = 10 signal.alarm(timeout) # Attempt to execute the function try: loop_forever() except Exception as exc: print(exc) # Cancel the timeout after the function completes signal.alarm(0)
loop_forever() 함수가 10초 제한 시간을 초과하면 핸들러 함수가 호출되어 기본 코드에서 처리할 수 있는 예외가 발생합니다.
참고:
신호 모듈을 주의해서 사용하는 것이 중요합니다. 스레드로부터 완전히 안전하지 않으므로 다중 스레드 애플리케이션에서는 사용하지 않는 것이 가장 좋습니다.
위 내용은 Python에서 함수 시간 초과를 어떻게 적절하게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!