인프런 커뮤니티 질문&답변

JJun M님의 프로필 이미지

작성한 질문수

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

리턴 값이 있는 함수를 멀티 프로세스로 실행할 때 실행된 함수의 리턴 값을 변수로 저장하여 사용할 수 있는 방법이 궁금합니다.

20.11.02 16:16 작성

·

3K

0

리턴 값이 있는 함수를 멀티 프로세스로 실행할 때 실행된 함수의 리턴 값을 변수로 저장하여 사용할 수 있는 방법이 궁금합니다.

from multiprocessing import Process

def func1():
    a = a+3
    return a

def func2():
    b = b+2
    return b

def func3():
    c = c+1
    return c

p1 = Process(target=func1)
p2 = Process(target=func2)
p3 = Process(target=func3)

p1.start()
p2.start()
p3.start()

p1.join()
p2.join()
p3.join()

답변 2

2

좋은사람님의 프로필 이미지
좋은사람
지식공유자

2020. 11. 03. 11:50

안녕하세요.

좋은 질문입니다.

아래 예제를 보시고 실행해보세요.

import multiprocessing


def worker(procnum, return_dict):
    """worker function"""
    print(str(procnum) + " represent!")
    return_dict[procnum] = procnum


if __name__ == "__main__":
    manager = multiprocessing.Manager()
    return_dict = manager.dict()
    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i, return_dict))
        jobs.append(p)
        p.start()

    for proc in jobs:
        proc.join()
    print(return_dict.values())

0

JJun M님의 프로필 이미지
JJun M
질문자

2020. 11. 03. 21:47

답변 고맙습니다. 실습해 보고 궁금 부분 문의드리겠습니다.

JJun M님의 프로필 이미지

작성한 질문수

질문하기