multiprocessing返回函数值
时间: 2023-12-31 13:46:57 浏览: 31
可以使用multiprocessing中的Queue或Manager来实现多进程返回函数值。
使用Queue的方式,可以将进程要返回的值放到Queue中,让主进程从Queue中取出值。示例代码如下:
```python
import multiprocessing
def worker(queue):
result = 123
queue.put(result)
if __name__ == '__main__':
queue = multiprocessing.Queue()
p = multiprocessing.Process(target=worker, args=(queue,))
p.start()
p.join()
result = queue.get()
print(result)
```
使用Manager的方式,可以创建一个共享的变量,让主进程和子进程都能够访问并修改这个变量。示例代码如下:
```python
import multiprocessing
def worker(shared_dict):
shared_dict['result'] = 123
if __name__ == '__main__':
with multiprocessing.Manager() as manager:
shared_dict = manager.dict()
p = multiprocessing.Process(target=worker, args=(shared_dict,))
p.start()
p.join()
result = shared_dict['result']
print(result)
```
这两种方式都可以实现在多进程中返回函数值的功能,具体选择哪种方式取决于具体的需求。