获取多进程中使用的函数的 return 值

getting the return value of a function used in multiprocess

假设我有下面的代码,一个执行某些操作的函数,它在进程中启动,并且 return 是一个值。

from multiprocessing import Process

def my_func(arg):
    return 'Hello, ' + arg

p1 = Process(target=my_func, args=('John',)
p1.start()
p1.join()

如何获取函数的 return 值?

回答

from multiprocessing import Process, Queue

Q = Queue()

def my_func(arg):
    Q.put('Hello, ' + arg)

p1 = Process(target=my_func, args=('John',))
p1.start()
print(Q.get())
p1.join()