2011-12-22 46 views
5

我需要对使用某些多处理内容的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) 

回答

11

你应该能够做到这一点与此代码:

process.join(timeout) 
if process.is_alive(): 
    process.terminate() 

因此,而不是设置在超时该函数可以在进程超时的情况下加入,如果进程在该超时之后尚未完成,则终止该进程。