>백엔드 개발 >파이썬 튜토리얼 >시간 초과로 Python 함수 실행을 중단하는 방법은 무엇입니까?

시간 초과로 Python 함수 실행을 중단하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-18 11:00:16236검색

How to Interrupt a Python Function Execution with a Timeout?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.