Welcome to 徐小波’s |

河北大学-徐小波

园龄:2年2个月粉丝:1关注:4

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 @   河北大学-徐小波  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起