队列:
先进先出
通信原理:
在内存中建立队列数据结构模型。多个进程都可以通过队列存入内容,取出内容的顺序和存入顺序保持一致
函数方法:
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()