立即学习:https://edu.csdn.net/course/play/24458/296433?utm_source=blogtoedu
队列和管道
1.存在的意义:
1)在前面的笔记中,使用join和互斥锁来保证了硬盘数据共享的数据安全性,但是降低了代码的运行效率;
2)而队列和管道的操作空间是内存,内存操作运行速度会更快,因此使用队列既可以保证数据共享的安全,也可以保证代码的运行效率;且互斥锁得考虑锁什么时候添加什么时候释放,比较难以掌握这个时间节点,但是队列就不用考虑这个问题;
3)队列是先进先出,管道是先进后出,队列和管道其实是相当于自带锁的。
2.Queue模块
1)put函数:往队列中添加元素
2)get函数:从队列中取得元素
3)full函数:确定队列是否元素已经满
4)empty函数:确定队列是否还有元素
3.代码
队列和管道里面不适宜存储较大的文件,一般只是使用在队列中存储一些信息
from multiprocessing import Queue
# from queue import Queue#和上面的模块的代码是一样的q = Queue(3)#定义一个队列,只能存放三个元素q.put([2,2,2,2])
q.put(3)
q.put('中国')
print(q.full())print('*'*50)print(q.get())
print(q.get())
print(q.get())
print(q.empty())
运行结果:
True
**************************************************
[2, 2, 2, 2]
3
中国
True