• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

20.11.02 16:16 작성 조회수 2.68k

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

안녕하세요.

좋은 질문입니다.

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

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

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