可以通过使用'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 多进程编程:使用 multiprocessing.Process 获取函数返回值

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

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