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

  

最新文章

  1. mysql 常用函数整理
  2. swift相关
  3. Azure Automation (2) 定期删除存储账号中的文件
  4. hdu 5818 (优先队列) Joint Stacks
  5. Java [Leetcode 94]Binary Tree Inorder Traversal
  6. bzoj3171
  7. syslog_test.c 简单的syslog函数
  8. Qml 写的弹出层控件(13篇博客)
  9. PhpStrom如何安装主题?(总结三种不同格式安装方法)
  10. Android View的滑动
  11. fscanf_s与scanf_s的宽度参数与缓冲区参数分析
  12. nginx http2 push 试用
  13. Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04
  14. Spring框架中IoC(控制反转)的原理(转)
  15. Java Web知识梳理
  16. 转载 intellij IDEA 使用体验 (本人感觉它的使用是一种趋势)
  17. 智能家居入门DIY——【二、LD3320之语音识别】
  18. hibernate一对多多对一双向
  19. Spring学习(二)-----eclipse新建spring项目
  20. SQL select查询原理--查询语句执行原则<转>

热门文章

  1. C#线程 基本同步
  2. C语言 俄罗斯方块demo
  3. Spring相关面试题-整理
  4. (String),toString(),String.valueOf()
  5. 【Hadoop】mapreduce环形缓冲区
  6. JAVASE(十六) IO流 :File类、节点流、缓冲流、转换流、编码集、对象流
  7. Java实现蓝桥杯第八届决赛 对局匹配
  8. (Java实现) 洛谷 P1091合唱队形
  9. Java实现 LeetCode 530 二叉搜索树的最小绝对差(遍历树)
  10. Java实现 蓝桥杯VIP 算法训练 数位分离