본문 바로가기
Python/Python

Python - 멀티프로세싱에서 공유 리스트 활용법

by 유노파이 2020. 12. 25.
# -*- coding: utf-8 -*-

import multiprocessing
import os

def count(n, share_list):
    ## 0 ~ 99 리스트에 추가
    if n == 1:
        for i in range(100):
            print (i)
            share_list.append(i)
            
    ## 100 ~ 199 리스트에 추가        
    elif n == 2:
        for i in range(100,200):
            print (i)
            share_list.append(i)
        


if __name__ == '__main__':

    ## Manager()를 이용하여 공유할 리스트를 만듦
    manager    = multiprocessing.Manager()
    share_list = manager.list()

    jobs  = []

    ## target = 실행 할 함수 , args = 넘겨줄 인자
    for num in range(1,3):
        p = multiprocessing.Process (target = count, args=(num, share_list))
        jobs.append(p)
        p.start()
    
    for job in jobs:
        job.join()
        
    ## 멀티프로세싱이 끝난 후 리스트에는 0 ~ 199 까지 찍힘
    for x in sorted(share_list):
        print (x)

오늘의 공부..

 

댓글