Python多进程如何获取函数的返回值

发布于 2022-09-05 08:02:56 字数 200 浏览 14 评论 0

请问我用Process实现多进程了,但是那个函数会返回一个值,我如何获得,比如这样

def test(name):
    return "hello," + name

p = Process(target=test, args=("world",))
p.start()
p.join()

我如何获得test的返回值

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

窗影残 2022-09-12 08:02:56
p = multiprocessing.Pool(1)
rslt = p.map(test,('world',))
print rslt
冬天旳寂寞 2022-09-12 08:02:56

没有办法直接实现你的需求,但是,你可以用共享变量的方法实现,比如:

def worker(procnum, return_dict):
    '''worker function'''
    print str(procnum) + ' represent!'
    return_dict[procnum] = procnum


if __name__ == '__main__':
    manager = 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()
像极了他 2022-09-12 08:02:56

搜一下进程间通信

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文