我需要设置一个python函数的时间限制,它使用一些多处理的东西(我不知道它是否重要)。像这样:
function(a_list):
p1 = Process(a_list[0:len(a_list/2)])
p2 = Process(a_list[len(a_list)/2: len(a_list)])
//start and join p1, p2
我环顾网络,我发现了一个超时装饰,但它看起来相当棘手和冗长(我是新手在装饰)。我想要的是一件简单的事情。
编辑:我想我把它写得太简单了。我的程序遍历上述函数并将结果存储在一个列表中,如下所示:
while(something):
retval = function(some_list) # here I need the time out thing
# if function timed out then skip
ris_list.append(retval)
您应该能够使用以下代码:
process.join(timeout)
if process.is_alive():
process.terminate()
不需要在函数中设置超时,你可以用一个超时来连接进程,如果在超时之后进程还没有完成,那么就终止它。