首页 > 解决方案 > 如何获得过程的返回值

问题描述

我想获取函数返回值

我怎么能得到这个:

 def chunk1():
     return 'Hello'

p1 = Process(target=chunk1).start()

我想从流程中获取 Chunk1 返回值我该怎么做?

标签: python

解决方案


您可能想在共享内存中使用队列或其他东西。

https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing

从该页面:

# The Queue class is a near clone of Queue.Queue. For example:

from multiprocessing import Process, Queue

def f(q):
    q.put([42, None, 'hello'])

if __name__ == '__main__':
    q = Queue()
    p = Process(target=f, args=(q,))
    p.start()
    print q.get()    # prints "[42, None, 'hello']"
    p.join()

但如果这是年轻的代码,你可能会考虑 concurrent.futures 。

concurrent.futures 与队列一起使用,例如:

我将如何在实时场景中使用 concurrent.futures 和队列?


推荐阅读