#生产者与消费者模式,模式解释:比如MVC设计模式
'''
1.队列
(1)特点:先进先出
(2)python2 VS python3
python2:from Queue import queue
python3:from queue import Queue join--阻塞动作
blocked--状态 (3)使用
Python的Queue模块中提供了同步的,线程安全的队列类
a.FIFO----(First In First Out)先进先出
b.LIFO----(Last In First Out)后进先出
中间的时候,给自己贴一个标签,给自己设置一个优先级
c.priority----优先级队列 这些队列都实现了锁原语(可以理解为原子操作,即要么不做,要么做完),能够在多线程中直接使用
可以使用队列来实现线程间的同步问题
'''
from queue import Queue
#可以生成优先级队列
import queue
#这样不安全 可能会对其进行更改
# download__list = [11,22,33] q = Queue(3) #默认先进先出队列
#判断队列是否为空
# print(q.empty()) #往队列中放数据
q.put('d1')
q.put('d2')
q.put('d3')
# print(q.qsize())
#判断是否空和满
# print(q.empty(),q.full()) #取数据
# print(q.get())
# print(q.get())
# print(q.get())
# print(q.get(timeout=2))#阻塞,超时之后抛出queue.Empty异常,没有数据强制取
# print(q.get_nowait())#不要等待,没有数据抛出queue.Empty异常 #b.规定队列长度
# q1 = Queue(maxsize=4)#最大任务数为4
# q1.put(1)
# q1.put(2)
# q1.put(3)
# q1.put(4)
# q1.put(5)
# q1.put(5,timeout=2)#阻塞,如果队列已满,抛queue.Full异常
# q1.put(5,block=False)#抛queue.Full异常 # print(q1.qsize())#获取队列当中的任务数量大小
# print('~~~~~~~~~~~~~') #c.队列优先级,数字小的优先级高
q2 = queue.PriorityQueue()
q2.put((1,'d1'))
q2.put((2,'d2'))
q2.put((-1,'d3'))
q2.put((0,'d4'))
# print(q2.get())
# print(q2.get())
# print(q2.get())
# print(q2.get()) #取里面的数据
# i = 0
# while i < q2.qsize():
# print(q2.get()) #后进先出队列
q3 = queue.LifoQueue()
q3.put(1)
q3.put(2)
q3.put(3) i = 0
while i < q3.qsize():
print(q3.get())

最新文章

  1. Cordova Ionic AngularJS
  2. Spark大数据的学习历程
  3. C++实现对lua访问的封装
  4. 玩转数据库之 Group by Grouping
  5. 【OpenStack】OpenStack系列7之Nova详解
  6. appcon 图标打包
  7. (转)codeblock(常用快键)
  8. Unity3D 与 objective-c 之间数据交互。iOS SDK接口封装Unity3D接口
  9. bzoj 3931 [CQOI2015]网络吞吐量(最短路,最大流)
  10. UFLDL教程(五)之self-taught learning
  11. 在javascript中使用媒体查询media query
  12. 转:嵌入式linux启动时运行的inittab文件
  13. TypeScript 素描 - 模块解析、声明合并
  14. MFC解决Static控件背景透明时文本覆盖重影
  15. [译]Java 设计模式之适配器
  16. Android Tips
  17. bzoj 4002: [JLOI2015]有意义的字符串
  18. 损失函数 hinge loss vs softmax loss
  19. C# - 设计模式 - 钩子模式
  20. 关于mpvue 切换页面数据没清空

热门文章

  1. P5504 [JSOI2011]柠檬
  2. Elasticsearch学习,请先看这一篇!
  3. 前端:HTML5和CSS3新特性一览
  4. Vue Login by Google
  5. HTML创建链接框
  6. js中JSON和JSONP的区别,让你从懵逼到恍然大悟
  7. 2018-8-10-sublime-Text-正则替换
  8. Mysql配置信息
  9. Webpack3.X版 学习全文
  10. Codeforces Round #425 (Div. 2) - B