python 다 중 프로 세 스 데이터 전달

1217 단어 python
python multiprocessing 다 중 프로 세 스 데이터 전달 은 줄 이 너무 많은 bug 를 사용 합 니 다.제한 이 있 습 니 다.multiprocessing.Manager()를 사용 하여 데 이 터 를 전달 하면 queues 줄 의 차단 문 제 를 해결 할 수 있 습 니 다.
import multiprocessing

def fun(q,number,lst):
    arr = []
    for i in lst:
        arr.append(i)
    for i in range(2):
        q.append(arr)

if __name__=='__main__':
    lst = list(range(200))
    thread_input_list = dict()
    partition_point = int(len(lst)/4)
    for thread_number in range(0,4):
        thread_input_list[thread_number] = lst[(thread_number*partition_point):(thread_number+1)*partition_point]
      
    thread_position_list = dict()
    processes = dict()
    queues = dict()
    with multiprocessing.Manager() as m:
        for thread in range(0,4):
            queues[thread] = m.list()
            processes[thread] = multiprocessing.Process(target=fun,args=(queues[thread],thread,thread_input_list[thread]))
            processes[thread].start()
        for thread in range(0,4):
            processes[thread].join()
            thread_position_list[thread] = queues[thread]
        lst = []
        for key,value in thread_position_list.items():
            lst.extend(value)
    print(lst)

좋은 웹페이지 즐겨찾기