2011-12-22 4 views
5

일부 다중 처리 항목을 사용하는 파이썬 기능에 시간 제한을 설정해야합니다 (중요한지는 모르겠습니다). 이런 식으로 뭔가 :다중 처리 기능 시간 초과

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() 

그래서 대신에 타임 아웃의 설정 함수를 사용하면 프로세스를 제한 시간에 참여시킬 수 있으며 프로세스가 해당 시간 초과 후에 완료되지 않은 경우 종료 할 수 있습니다.

관련 문제