Python 多进程编程:使用 multiprocessing.Process 获取函数返回值
可以通过使用'multiprocessing.Queue'来获取函数返回值。具体可以参考下面的示例代码:
import multiprocessing
def f(x):
return x * x
if __name__ == '__main__':
p = multiprocessing.Process(target=f, args=(5,))
q = multiprocessing.Queue()
p.start()
q.put(p)
p.join()
result = q.get().exitcode
print(result)
在这个示例中,首先定义了一个函数'f',它接收一个参数'x',并返回'x * x'的结果。然后,创建一个'multiprocessing.Process'对象'p',并将其设置为执行'f'函数,并传入参数5。
接着,创建一个'multiprocessing.Queue'对象'q',用于获取'p'进程执行完毕后的返回值。在'p'进程执行完毕后,将'p'对象放入'q'队列中,并使用'p.join()'等待'p'进程执行完毕。
最后,从'q'队列中获取'p'进程的返回值,即'exitcode'属性,打印出来。
需要注意的是,在使用'multiprocessing.Queue'时,必须将'Queue'对象放在主进程中创建,并传递给子进程,否则会出现'pickle.PicklingError'异常。
原文地址: https://www.cveoy.top/t/topic/nzkl 著作权归作者所有。请勿转载和采集!