首页 > 代码库 > Python3-queue模块-同步队列
Python3-queue模块-同步队列
Python3中的queue模块实现多生产者,多消费者队列,特别适用于多个线程间的信息的安全交换,主要有三个类
queue.Queue(maxsize=0)
构造一个FIFO(先进先出)的队列
queue.LifoQueue(maxsize=0)
构造一个LIFO(后进先出)的队列
queue.PriorityQueue(maxsize=0)
构造一个具有优先级的队列,存储的是一个元组(n, value),n为数字代表优先级,数字越小,级别越高
这个模块定义了两个异常
queue.Empty
如果队列中为空,继续调用非阻塞的get_nowait()会抛出异常
queue.Full
如果队列已满,继续调用非阻塞的put_nowait()会抛出异常
import queue # 以下三个队列都可以设置最大长度maxsize,默认是无限大 print("-------------queue.Queue----------------") # 线程消息队列,FIFO(先进先出) q = queue.Queue() q.put("one") q.put("two") q.put("three") print(q.get()) print(q.get()) print(q.get()) # print(q.get(timeout=3)) # 队列中没有数据,会阻塞 print("-------------queue.LifoQueue----------------") # 线程消息队列,LIFO(后进先出) lq = queue.LifoQueue() lq.put("one") lq.put("two") lq.put("three") print(lq.get()) print(lq.get()) print(lq.get()) print("-------------queue.PriorityQueue----------------") # 线程消息队列,PriorityQueue(优先级的队列:数字越小优先级越高) pq = queue.PriorityQueue() pq.put((1, "Jet")) pq.put((3, "Jack")) pq.put((2, "Judy")) print(pq.get()) print(pq.get()) print(pq.get())
参考资料
http://python.usyiyi.cn/translate/python_352/library/queue.html
Python3-queue模块-同步队列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。