2023学年完整公开课版技能点1深入queue_第1页
2023学年完整公开课版技能点1深入queue_第2页
2023学年完整公开课版技能点1深入queue_第3页
2023学年完整公开课版技能点1深入queue_第4页
2023学年完整公开课版技能点1深入queue_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深入queue深入queue摘要queue模块实现了3种类型的队列,区别在于队列中条目检索的顺序不同。在FIFO队列中,按照先进先出的顺序检索条目。在LIFO队列中,最后添加的条目最先检索到(操作类似一个栈)。在优先级队列中,条目被保存为有序的(使用heapq模块)并且最小值的条目被最先检索。关键词queue12classqueue.Queue(maxsize=0)FIFO队列的构造器。maxsize为一个整数,表示队列的最大条目数。一旦队列满,插入将被阻塞直到队列中存在空闲空间。如果maxsize小于等于0,队列大小为无限。maxsize默认为0示例:1.queue模块的类输出结果:3classqueue.LifoQueue(maxsize=0)LIFO队列的构造器。maxsize是一个整数,表示队列的最大条目数。一旦队列满,插入将被阻塞直到队列中存在空闲空间。如果maxsize小于等于0,队列大小为无限。maxsize默认为0示例:1.queue模块的类输出结果:4classqueue.PriorityQueue(maxsize=0)构造一个优先队列。maxsize用法同上。示例:1.queue模块的类输出结果:52.queue对象的方法Queue.qsize()返回队列的近似大小。示例:输出结果:6Queue.empty()如果队列是空的,则返回True,否则False。示例:2.queue对象的方法输出结果:72.queue对象的方法Queue.full()如果队列满则返回True,否则返回False。示例:输出结果:82.queue对象的方法Queue.put(item,block=True,timeout=None)放item到队列中。如果block是True,且timeout是None,该方法将一直等待直到有队列有空余空间(默认block=True,timeout=None)。如果timeout是一个正整数,该方法则最多阻塞timeout秒并抛出Full异常。如果block是False并且队列满,则直接抛出Full异常(这时timeout将被忽略)。block为True示例:92.queue对象的方法输出结果:102.queue对象的方法block为False示例:输出结果:112.queue对象的方法Queue.get(block=True,timeout=None)从队列中移除被返回一个条目。如果block是True并且timeout是None(默认block=True,timeout=None),该方法将阻塞直到队列中有条目可用。如果timeout是正整数,该方法将最多阻塞timeout秒并抛出Empty异常。如果block是False并且队列为空,则直接抛出Empty异常(这时timeout将被忽略)。block为True示例:122.queue对象的方法输出结果:132.queue对象的方法block为False示例:输出结果:142.queue对象的方法Queue.task_done()表示一个先前的队列中的任务完成了。被队列消费者线程使用。对于每个get()获取到的任务,接下来的task_done()的调用告诉队列该任务的处理已经完成。如果join()调用正在阻塞,当队列中所有的条目被处理后它将恢复执行(意味着task_done()调用将被放入队列中的每个条目接收到)。如果调用次数超过了队列中放置的条目数目,将抛出ValueError异常。152.queue对象的方法Queue.join()阻塞直到队列中所有条目都被获取并处理。当一个条目被增加到队列时,未完成任务的计数将增加。当一个消费者线程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论