[Python 2.7多线程]在Python中,如何在子线程中超时函数调用?

[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

我知道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:
   print ex
但它只能在主线程中运行,如果尝试在子线程中运行,它会抛出以下错误:“ValueError:signal仅在主线程中工作”


在Python中,如何使子线程中的函数调用超时?

这个问题在中得到了回答,尽管这个问题与那个问题不完全相同。谢谢,但我需要在Python 2.7中运行。如果它适合Python2.7,我将尝试它。这个问题的答案是,尽管这个问题与那个问题不完全相同。谢谢,但我需要在Python2.7中运行。如果它适合Python2.7,我将尝试它