http://docs.python.org/dev/library/multiprocessing.html 에서 설명서를 읽으려고했지만 여전히 다중 처리 대기열, 풀 및 잠금으로 어려움을 겪고 있습니다. 그리고 지금은 아래 예제를 만들 수있었습니다.
Queue와 Pool의 경우 개념을 제대로 이해했는지 잘 모르겠습니다. 틀 렸으면 바로 수정 해주세요. 내가 달성하려는 것은 한 번에 2 개의 요청을 처리하는 것입니다 (이 예에서는 데이터 목록에 8 개 있음). 그래서 무엇을 사용해야합니까? 두 개의 서로 다른 대기열 (최대 2 개)을 처리 할 수있는 2 개의 프로세스를 생성하기위한 풀 또는 대기열을 사용하여 매번 2 개의 입력을 처리해야합니까? 잠금은 출력을 올바르게 인쇄하는 것입니다.
import multiprocessing
import time
data = (['a', '2'], ['b', '4'], ['c', '6'], ['d', '8'],
['e', '1'], ['f', '3'], ['g', '5'], ['h', '7']
)
def mp_handler(var1):
for indata in var1:
p = multiprocessing.Process(target=mp_worker, args=(indata[0], indata[1]))
p.start()
def mp_worker(inputs, the_time):
print " Processs %s\tWaiting %s seconds" % (inputs, the_time)
time.sleep(int(the_time))
print " Process %s\tDONE" % inputs
if __name__ == '__main__':
mp_handler(data)