20.11.02 16:16 작성
·
3.1K
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