python父子进程进程间通讯
时间: 2024-02-29 07:50:30 浏览: 87
在Python中,可以使用`multiprocessing`模块来创建父子进程,并且通过进程间通信(IPC)来实现它们之间的通讯。下面是一个简单的示例:
```python
from multiprocessing import Process, Pipe
# 定义一个函数作为子进程的任务
def child_task(conn):
# 子进程通过连接发送消息给父进程
conn.send("Hello from child process!")
# 接收父进程发送的消息
message = conn.recv()
print("Child process received:", message)
# 关闭连接
conn.close()
if __name__ == '__main__':
# 创建一个管道,用于进程间通信
parent_conn, child_conn = Pipe()
# 创建子进程,传入管道连接
child_process = Process(target=child_task, args=(child_conn,))
# 启动子进程
child_process.start()
# 父进程通过连接接收子进程发送的消息
message = parent_conn.recv()
print("Parent process received:", message)
# 父进程通过连接发送消息给子进程
parent_conn.send("Hello from parent process!")
# 等待子进程结束
child_process.join()
```
在上面的示例中,我们使用`Pipe`函数创建了一个双向管道,然后将管道的一端传递给子进程。子进程通过连接发送消息给父进程,并且接收父进程发送的消息。父进程也可以通过连接接收子进程发送的消息,并且发送消息给子进程。最后,我们使用`join`方法等待子进程结束。
这只是一个简单的示例,实际上,Python中还有其他的进程间通信方式,如使用`Queue`、`Manager`等。你可以根据具体的需求选择适合的方式来实现进程间通信。
阅读全文