python多进程,使用pipe进行进程间的通讯

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条消息]

通信完成!

 

posted @ 2024-12-25 22:28  河北大学-徐小波  阅读(4)  评论(0编辑  收藏  举报