消息队列Queue

队列:
  先进先出
通信原理:
  在内存中建立队列数据结构模型。多个进程都可以通过队列存入内容,取出内容的顺序和存入顺序保持一致

函数方法:

q = Queue(maxsize = 0)
  功能 : 创建队列对象
  参数 : maxsize : 默认表示系统自动分配队列空间
    如果传入正整数则表示最多存放多少条消息
  返回值 : 队列对象

q.put(data,[block,timeout])
  功能:向队列中存入消息
  参数:data 存入的消息 (支持python数据类型)
    block 默认True 表示当队列满时阻塞
    设置为False 则为非阻塞
    timeout 超时时间

data = q.get([block,timeout])
  功能: 获取队列消息
  参数:block 默认为True 表示队列空时阻塞
    设置为False则表示非阻塞
    timeout 超时时间
  返回值 : 返回获取到的消息

q.full() 判断队列是否为满
q.empty() 判断队列是否为空
q.qsize() 获取队列中消息数量
q.close() 关闭队列

from multiprocessing import Process,Queue
import time

#创建消息队列
q = Queue()

def fun1():
    time.sleep(1)
    q.put({"a":1,"b":2})

def fun2():
    time.sleep(2)
    print("收到消息", q.get())

p1 = Process(target = fun1)
p2 = Process(target = fun2)
p1.start()
p2.start()
p1.join()
p2.join()
原文地址:https://www.cnblogs.com/zengsf/p/9637920.html