python3 queue模块的使用


queue -- 队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列

而我们使用python中的queue模块, 可以队列和线程之间来传递数据, 我们实现多线程可以将整个程序进行拆分, 将每一个步骤封装成一个函数, 函数之间通过队列来进行交互.

 

 

 

#  导入模块的三种类
1. from queue import Queue(maxsize)
2. from queue import Lifoqueue(maxsize)
3. from queue import Priorityqueue(maxsize)
maxsize参数: maxsize小于1就表示队列长度无限
1). 队列先进先出
2). 类似于堆, 先进后出
3). 通过优先级队列,级别低先出来

常用的方法:

例子:
q = queue.Queue()
q.qsize() 返回队列的大小
q.empty() 如果队列为空,返回True,反之False
q.full() 如果队列满了,返回True,反之False

q.get(), block可选参数默认为True, 当队列为空和block为True的时候停止调用, 直到队列不为空, 同时它会返回数据
q.put(item), item为必传参数, 通过参数放入到队列中, block默认为1,
q.task_done()每完成一个队列任务的时候, 结束时要说明一下.也就执行get和put后

q.join(), 等待队列为空, 否则一直阻塞

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM