import multiprocessing import time''' python多进程 pipe在多进程中,进程间的通信是一个常见的需求。管道(Pipe)提供了一种简单有效的进程间通信方式, 允许数据在进程间传递。通过使用管道,我们可以让一个进程发送数据,另一个进程接收。以下是一个使用管道在两个进程之间传递数据的示例: ''' def sender(pipe):"""模拟数据发送者"""for i in range(5):msg = f'第{i}条消息'print(f'发送消息: [{msg}]')pipe.send(msg)time.sleep(1) # 模拟延迟def receiver(pipe):"""模拟数据接收者"""for _ in range(5):msg = pipe.recv()print(f'接收到消息: [{msg}]\n')if __name__ == '__main__':# 创建管道parent_conn, child_conn = multiprocessing.Pipe()# 创建进程process_sender = multiprocessing.Process(target=sender, args=(child_conn,))process_receiver = multiprocessing.Process(target=receiver, args=(parent_conn,))# 启动进程process_sender.start()process_receiver.start()# 等待进程结束process_sender.join()process_receiver.join()print("通信完成!")
输出:
发送消息: [第0条消息]
接收到消息: [第0条消息]发送消息: [第1条消息]
接收到消息: [第1条消息]发送消息: [第2条消息]
接收到消息: [第2条消息]发送消息: [第3条消息]
接收到消息: [第3条消息]发送消息: [第4条消息]
接收到消息: [第4条消息]通信完成!