进程(二)----多进程通讯--队列,管道,共享内存Manager

本文介绍了Python中实现进程间通信的三种方法:进程队列Queue、管道Pipe和Manager共享内存。队列Queue在进程间通信时会进行数据复制,适合根据消息类型筛选接收。管道提供双向数据传输,适用于简单的数据交换。Manager允许进程间共享数据,提高通信效率。
摘要由CSDN通过智能技术生成

 

  • 进程通讯

进程之间的操作是相互独立的,进程之间的数据共享是一个重要的问题,这里给大家介绍几种进程通讯的方法。

  1. 进程队列
  2. 管道
  3. Manager共享内存

操作系统会复制一个与父进程完全相同的子进程,虽说是父子关系,但是在操作系统看来,他们更像兄弟关系,这2个进程共享代码空间,但是数据空间是互相独立的,子进程数据空间中的内容是父进程的完整拷贝,指令指针在不同操作平台上出现的情况不一,可能完全相同也可能不同。

1.进程队列Queue-----消耗大

队列在进程之间的通讯是采用复制的方式,数据复制需要开辟一块空间存放数据,消耗有点大。其优势是对每个消息指定特定的消息类型,接收的时候不需要按照队列次序,而是可以根据自定义条件接收特定类型的消息。下面就是一个例子

#注意:

Queue.Queue是进程内非阻塞队列,multiprocess.Queue是跨进程通信队列。

1.from queue import Queue
这个是普通的队列模式,类似于普通列表,先进先出模式,get方法会阻塞请求,直到有数据get出来为止

2.from multiprocessing.Queue import Queue(各子进程共有)
这个是多进程并发的Queue队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值