可以通过使用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异常

python使用multiprocessingProcess多进程并获取函数返回值

原文地址: https://www.cveoy.top/t/topic/cKsP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录