[Python 2.7多线程]在Python中,如何在子线程中超时函数调用?
我知道python 2.7中的“信号”模块,一般来说,我们可以使用以下代码来超时主线程函数调用:[Python 2.7多线程]在Python中,如何在子线程中超时函数调用?,python,multithreading,Python,Multithreading,我知道python 2.7中的“信号”模块,一般来说,我们可以使用以下代码来超时主线程函数调用: import signal def signal_handle_timeout: raise Exception("Timeout!") signal.signal(signal.SIGALRM, signal_handle_timeout) signal.alarm(seconds) try: long_time_function() except Exception as ex
import signal
def signal_handle_timeout:
raise Exception("Timeout!")
signal.signal(signal.SIGALRM, signal_handle_timeout)
signal.alarm(seconds)
try:
long_time_function()
except Exception as ex:
print ex
但它只能在主线程中运行,如果尝试在子线程中运行,它会抛出以下错误:“ValueError:signal仅在主线程中工作”
在Python中,如何使子线程中的函数调用超时?这个问题在中得到了回答,尽管这个问题与那个问题不完全相同。谢谢,但我需要在Python 2.7中运行。如果它适合Python2.7,我将尝试它。这个问题的答案是,尽管这个问题与那个问题不完全相同。谢谢,但我需要在Python2.7中运行。如果它适合Python2.7,我将尝试它