欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

队列

程序员文章站 2023-08-18 21:08:11
0707自我总结 队列 1.queue 模块 常用的两种方法 :先放什么参数先获取什么参数 :将放进去的所有参数进行排序,再按照顺序取出 :构造一个Lifo队列,会从最后开始往前取 2.queue 创建对象的方法 qsize() :返回queue的近似值。注意:qsize 0 不保证(get)取元素 ......

0707自我总结

队列

1.queue 模块

常用的两种方法

queue:先放什么参数先获取什么参数

priorityqueue:将放进去的所有参数进行排序,再按照顺序取出

lifoqueue:构造一个lifo队列,会从最后开始往前取

2.queue 创建对象的方法

qsize() :返回queue的近似值。注意:qsize>0 不保证(get)取元素不阻塞。qsize< maxsize不保证(put)存元素不会阻塞

empty():判断队列是否为空。和上面一样注意

full():判断是否满了。和上面一样注意

put(item, block=true, timeout=none):

  • item为放进去参数
  • blocking = false ,如果队列满了,直接报 full异常,默认不会报错,但是如果继续放他会卡死
  • blocking = true,就是等一会,timeout必须为 0 或正数。none为一直等下去,0为不等,正数n为等待n秒还不能存入,报full异常。

get(item, block=true, timeout=none):获取参数其他参数与put类似,blocking 是报empty异常

get_nowait(item):从队列里取元素,不等待

task_done:一个标记

jion:一般jion与task_done联用,jion他会分析当前队列被放进去总的参数,与task_done标记数是否相同

3.队列的异常

  • queue.empty异常:只有非阻塞的时候,队列为空,取数据才会报异常

  • queue.full异常:只有非阻塞的时候,队列满了,继续放数据才会出现异常