multiprocessing 进程返回值
时间: 2024-01-06 18:05:14 浏览: 77
在使用 `multiprocessing` 模块创建进程时,可以通过 `Process` 类的 `join()` 方法等待进程结束,然后通过 `Process` 类的 `exitcode` 属性获取进程的退出状态码。但是,如果需要获取进程的返回值(即进程执行完毕后的结果),则需要使用 `multiprocessing` 模块的 `Queue` 类或 `Pipe` 类来实现进程间通信。
下面是一个使用 `Queue` 类来获取进程返回值的例子:
```python
import multiprocessing
def worker(num, q):
"""进程执行的函数,将结果放入队列中"""
result = num * num
q.put(result)
if __name__ == '__main__':
# 创建队列
q = multiprocessing.Queue()
# 创建进程
p = multiprocessing.Process(target=worker, args=(5, q))
# 启动进程
p.start()
# 等待进程结束
p.join()
# 从队列中获取进程执行结果
result = q.get()
print(result) # 输出 25
```
在上面的例子中,我们创建了一个 `Queue` 对象,然后将其作为参数传递给进程函数 `worker()`。在进程中,我们将计算结果放入队列中。在主进程中,我们等待进程结束,然后从队列中获取进程执行的结果。最后,我们打印出了结果 25。
阅读全文