2011-12-22 76 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() 

因此,而不是設置在超時該函數可以在進程超時的情況下加入,如果進程在該超時之後尚未完成,則終止該進程。