# 一共有以下3种队列
# 1、先进先出
# 2、后进先出
# 3、存储数据的时候可设置优先级的队列,设置不同的优先级,取的时候按照优先级的顺序来取 下面介绍一下队列的方法,如果要使用队列,则需要导入一个模块queue
import queue

q = queue.Queue(maxsize=3)
#创建一个队列的实例,该是对象的size是3 # q.get()
#从队列中获取值,如果队列中没有值,则会一直阻塞 # q.qsize()
#获取队列的size # q.get(timeout=3)
#c从队列中获取值,如果获取不到值,则只等待3s,如果超过3则会报错
# queue.Empty # q.get_nowait()的方法和q.get(timeout=3)一样的,如果拿不到会数据也会报一个queue.Empty的错
# queue.Empty #可以传一个list到队列中,取出来的也是一个list
q.put(["a","b","c"])
data = q.get_nowait()
print(data,type(data)) # ['a', 'b', 'c'] <class 'list'> #我们也可以把一个实例放在队列中
class foo(object):
def __init__(self,n):
self.n = n f = foo(2) q.put(f)
c = q.get_nowait()
print(c,type(c)) # <__main__.foo object at 0x01D03CB0> <class '__main__.foo'> #判断队列是否满,队列中有3个数据,如果get了一个,则队列中的数据个数就为2了
print(q.full())
# False
print(q.qsize())
q.put("1")
q.put({"k1":"v1"})
q.put(["a","b","c"])
print(q.qsize()) # q.put("2222")
#如果队列满了,则put会一直put不进去,这里就会一直阻塞 # q.put("abc",timeout=2)
#如果队列满了,加一个timeout=2.则会等待2s,如果还放不进去则会报错“queue.Full” # q.task_done()
# q.join() # q.empty()
# 判断队列是否为空 q = queue.Queue()
#上面这个是创建一个先进先出的队列 q = queue.LifoQueue()
#这里是创建一个先进后出的队列 q= queue.PriorityQueue()
#创建一个可以设置优先级的队列,存数据的时候是要用tuple的个数传数据,优先级越小,就越会被提前取出来 q.put((1,["a","b","c"]))
q.put((2,"abc")) print(q.get()) # (1, ['a', 'b', 'c'])

  

最新文章

  1. js 基础篇(点击事件轮播图的实现)
  2. 「标准」的 JS风格
  3. Linux文件查找命令 find 详解
  4. OpenGL 回顾-——矩形的创建、列表
  5. 【转】LaTeX 符号命令大全
  6. COM口,串行通讯端口,RS-232接口 基础知识
  7. redis学习研究--Redis作者谈Redis应用场景
  8. ng-class,与ng-click
  9. SAP HANA创建层次结构的属性视图(Hierarchy Attribute View)
  10. Mozilla Firefox的各级版本链接
  11. 套接字工厂——ServerSocketFactory
  12. Dropwizard入门及开发步骤
  13. 自定义 serializeJSON() 函数
  14. vagrant up报错 Warning: Authentication failure. Retrying...解决方案
  15. qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
  16. 想3分钟搭建图像识别系统?这里有一份TensorFlow速成教程(转)
  17. mysql压力测试工具Mysqlslap
  18. Vue的基本认识与使用
  19. idea 快捷键及使用技巧
  20. Linux的man手册共有以下几个章节

热门文章

  1. java study文件读写
  2. 【Codeforces】CF 5 C Longest Regular Bracket Sequence(dp)
  3. [Python] numpy.nonzero
  4. python入门-类(一)
  5. MyEclipse: Java代码与UML自动转换
  6. php 3DES|DES 加密解密(通用)
  7. Spring @Trasactionl 失效, JDK,CGLIB动态代理
  8. as3 air 保存文本内容的换行
  9. ABAP-索引
  10. 【转】Phong和Blinn-Phong光照模型