Python多任务(五)-----4种进程间的通信(数据交换)Queue对象、管道Pipe、共享内存Value和Array、Manager对象 详解

进程间的通信(数据交换)

  • 现有2个进程A和B,他们都在内存中开辟了空间,那么我们在内存中再开辟一个空间C,作用是连接这两个进程的。对于进程来说内存空间是可以共享的(任何一个进程都可以使用内存,内存当中的空间是用地址来标记的,我们通过查找某一个地址就能找到这个内存)A进程可以不断的向C空间输送东西,B进程可以不断的从C空间读取东西,这就是进程间的通信。
Queue对象
  • 对Queue的认识和理解:
    • Queue是复杂的数据结构的一种,即队列
    • 队列的特点是“先进先出(FIFO),后进后出(LILO)”
      • 相反,栈的特点“先进后出,后进先出”
  • 使用如下:
  • 注意:创建的Queue对象是multiprocessing模块中的Queue类创建的对象。
import multiprocessing

def send(q):
    # 发送数据
    s_msg = [11, 22, 33]
    for i in s_msg:
        q.put(i)
        print("---已发数据:%s---" % str(i))
    print("---数据发送完成---")

def receive(q):
    # 接收数据
    r_msg = list()
    while True:
        r_msg.append(q.get())
        if q.empty():
            break
    print("---数据接收完毕:%s---" % str(r_msg))

def main():
    # 创建一个队列
    # 注意:是multiprocessing模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值