multiprocessing 父进程 打印子进程的一个参数
时间: 2023-10-02 20:08:20 浏览: 159
在 `multiprocessing` 模块中,父进程和子进程之间是相互独立的,因此父进程无法直接访问子进程的变量。但是,我们可以通过 `multiprocessing.Pipe()` 来实现父进程和子进程之间的通信。
以下是一个例子:
```python
import multiprocessing
def child_process(conn):
# 子进程中获取参数并打印
data = conn.recv()
print("Child process received data: {}".format(data))
if __name__ == '__main__':
# 创建管道
parent_conn, child_conn = multiprocessing.Pipe()
# 创建子进程
p = multiprocessing.Process(target=child_process, args=(child_conn,))
p.start()
# 父进程中发送参数
data = "Hello, world!"
parent_conn.send(data)
print("Parent process sent data: {}".format(data))
# 等待子进程结束
p.join()
```
在上述代码中,我们首先创建了一个管道 `parent_conn, child_conn = multiprocessing.Pipe()`,然后创建了一个子进程 `p = multiprocessing.Process(target=child_process, args=(child_conn,))`。在父进程中,我们使用 `parent_conn.send(data)` 向子进程发送参数,然后使用 `conn.recv()` 在子进程中接收参数并打印。
输出结果为:
```
Parent process sent data: Hello, world!
Child process received data: Hello, world!
```
其中,父进程中打印了发送的参数,子进程中打印了接收到的参数。
阅读全文