利用multiprocessing做一个简单多进程通信
时间: 2023-08-25 14:07:57 浏览: 82
各种多进程之间的通信实例
下面是一个简单的多进程通信示例,使用了 `multiprocessing` 模块中的 `Pipe` 和 `Process` 类实现:
```python
from multiprocessing import Process, Pipe
def sender(conn):
conn.send("Hello from sender!")
conn.close()
def receiver(conn):
msg = conn.recv()
print(f"Received message: {msg}")
conn.close()
if __name__ == '__main__':
parent_conn, child_conn = Pipe()
p1 = Process(target=sender, args=(child_conn,))
p2 = Process(target=receiver, args=(parent_conn,))
p1.start()
p2.start()
p1.join()
p2.join()
```
上面的代码中,我们定义了两个函数 `sender` 和 `receiver`,分别用于发送和接收消息。在 `main` 函数中,我们创建了两个 `Pipe` 对象,`parent_conn` 和 `child_conn`,并将 `child_conn` 作为参数传递给 `sender` 函数,将 `parent_conn` 作为参数传递给 `receiver` 函数。
然后,我们创建了两个进程 `p1` 和 `p2`,分别运行 `sender` 和 `receiver` 函数。`p1` 将消息发送给 `p2`,`p2` 接收并打印消息。
最后,我们使用 `join` 方法等待两个进程完成。运行上面的代码,将会输出:
```
Received message: Hello from sender!
```
阅读全文