函數呼叫超時
當在Python 中呼叫可能無限期停止腳本執行的函數時,有必要建立一種機制來防止它。解決方案在於設定一個超時閾值,超過該閾值後腳本將幹預並終止函數。
使用訊號包
對於基於 UNIX 的系統,訊號包提供了一個強大的解決方案。使用它:
這是一個說明性範例:
import signal # Handler function def handler(signum, frame): print("Timeout reached!") raise Exception("Timeout exception") # Function that may stall indefinitely def loop_forever(): while True: print("Looping") # Pause execution for 1 second time.sleep(1) # Set timeout to 5 seconds signal.alarm(5) signal.signal(signal.SIGALRM, handler) try: loop_forever() except Exception as exc: print("Exception:", exc)
如果函數loop_forever()未能在5秒內完成,則處理函數將被調用,引發超時異常並終止進程。
以上是如何防止 Python 函數因逾時而無限期停止?的詳細內容。更多資訊請關注PHP中文網其他相關文章!