2011-12-22 37 views
5

Tôi cần đặt giới hạn thời gian cho chức năng python sử dụng một số công cụ đa xử lý (Tôi không biết nó có quan trọng không). Một cái gì đó như thế này:Hết giờ chức năng đa xử lý

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 

Tôi nhìn xung quanh ròng và tôi tìm thấy một thời gian ra trang trí nhưng có vẻ khá phức tạp và dài dòng (tôi newbie trên trang trí). Điều tôi muốn là một điều đơn giản.

EDIT:

Tôi nghĩ rằng tôi đã làm cho nó quá đơn giản. lặp chương trình của tôi so với hàm trên và kết quả lưu trữ trong một cái gì đó danh sách như thế này:

while(something): 

    retval = function(some_list) # here I need the time out thing 

    # if function timed out then skip 

    ris_list.append(retval) 

Trả lời

11

Bạn sẽ có thể làm điều đó với mã này:

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

Vì vậy, thay vì thiết lập một thời gian chờ trong các chức năng, bạn có thể tham gia với một thời gian chờ quá trình và nếu quá trình không hoàn thành sau thời gian chờ đó, sau đó chấm dứt nó.

Các vấn đề liên quan