位置: 编程技术 - 正文

python 队列详解及实例代码(python队列只能一个个读取吗)

编辑:rootadmin

推荐整理分享python 队列详解及实例代码(python队列只能一个个读取吗),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中的队列,python中队列的应用用场景,python队列的基本操作,python lifo队列,python3队列,python3队列,python3队列,python队列的基本操作,内容如对您有帮助,希望把文章链接给更多的朋友!

队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。

Queue模块最常与threading模块一起构成生产-消费者模型,提供了一个适用于多线程编程的先进先出的数据结构,即队列。

该模块源码中包含5个类:

其中,Empty和Full是两个异常类,当队列的Queue.get(block=0)或者调用get_nowait()时,如果队列为空,则抛EmptyException异常。

   同理,当队列的Queue.put(block=0)或者调用put_nowait()时,如果队列为达到maxsize,则抛FullException异常。

其他三个类:

Queue类:典型的队列模型,FIFO先入先出。  class Queue.Queue(maxsize) maxsize为队列长度,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻 塞,

直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。

LifoQueue类:继承自Queue,类似于堆栈,先入后出。  class Queue.LifoQueue(maxsize)

PriorityQueue类:继承自Queue,优先级队列,级别越低越先出来。  class Queue.PriorityQueue(maxsize)

所以,只要搞定Queue类,就基本搞定Queue模块。

python 队列详解及实例代码(python队列只能一个个读取吗)

Queue类中常用的方法:

Queue.qsize()          返回队列的大小 Queue.empty()          如果队列为空,返回True,反之False Queue.full()           如果队列满了,返回True,反之FalseQueue.full            与 maxsize 大小对应

Queue.get([block[, timeout]]) 获取队列,timeout等待时间 ,调用队列对象的get()方法从队头删除并返回一个项目。可选参数为block,默认为True。如果队列为空且block为True,get()就使调用线程暂停,直至有项目可用。如果队列为空且block为False,队列将引发Empty异常。

Queue.get_nowait() 相当于Queue.get(False)

Queue.put(item)

写入队列,timeout等待时间 ,调用队列对象的put()方法在队尾插入一个项目。put()有两个参数,第一个item为必需的,为插入项目的值;第 二个block为可选参数,默认为1。如果队列当前为空且block为1,put()方法就使调用线程暂停,直到空出一个数据单元。如果block为0,put方法将引发Full异常。

Queue.put_nowait(item) 相当Queue.put(item, False)

Queue.task_done()

在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号

Queue.join()

实际上意味着等到队列为空,再执行别的操作

一个小的练习实例:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

python 异常处理总结 最近,做个小项目经常会遇到Python的异常,让人非常头疼,故对异常进行整理,避免下次遇到异常不知所措,以下就是对Python异常进行的整理。1.Python异

Python 序列的方法总结 最近在做Python的项目,特地整理了下Python序列的方法。序列sequence是python中最基本的数据结构,本文先对序列做一个简单的概括,之后简单讲解下所有序

python类中super()和__init__()的区别 单继承时super()和__init__()实现的功能是类似的classBase(object):def__init__(self):print'Basecreate'classchildA(Base):def__init__(self):print'creatA',Base.__init__(self)classchildB(Base):d

标签: python队列只能一个个读取吗

本文链接地址:https://www.jiuchutong.com/biancheng/384429.html 转载请保留说明!

上一篇:django model去掉unique_together报错的解决方案(django modelform)

下一篇:python 异常处理总结(python异常处理的关键词)

  • 购买办公用品合同模板免费
  • 个人买车交增值税吗
  • 出口货物适用什么税率
  • 税盘维护费抵扣
  • 存款利息缴纳个税
  • 劳保如何入账
  • 固定资产大修理支出标准
  • 小额贷款业务涉及哪些法律
  • 网上银行 电子回单
  • 企业受托研发产品有哪些
  • 按月付息到期还本的贷款可以提前还款吗
  • 林木育种的意义和作用
  • 租金收入未收到 税法规定
  • 无产权车位20年到期后还收费吗
  • 股东转让股份怎么转让
  • 公司利润如何提高
  • 先计提房租后收到发票 发票附在哪
  • 支付职工培训费的现金流量项目
  • 销售货物结转成本会计分录
  • 先支付后收到发票怎么做账
  • mac如何修改
  • 购买财务软件会有操作流程吗
  • 威尼斯海滩滑板场
  • 长期借款和实收资本
  • 没进项可以开专票吗
  • php 通信
  • 其他综合收益的构成项目如何
  • Vue Element UI 中 el-table 树形数据 tree-props 多层级使用避坑
  • uni-app原理
  • openlayers6教程
  • 装修费入账科目
  • 金蝶软件凭证修改怎么做
  • 应付票据帐务处理
  • 微服务网关作用
  • 其他应收款是如何核算的
  • 印花税申报时间填错造成逾期怎么办
  • sql数据库降低版本
  • db2数据库安装服务器的环境
  • 公司买手表可以抵扣增值税吗
  • 成本利润率指的是
  • 专项资金如何进行管理
  • 本年利润必须转入利润分配吗
  • 合并报表两种方法
  • 商家说垫付运费
  • 专利转让费一般是多少
  • 其他应付款在贷方表示什么
  • 实缴发票和月结发票知乎
  • 支付宝账户收到美元怎么转换成人民币
  • 工程没钱也没有工资
  • 消耗性生物资产与生产性生物资产的区别
  • 小规模纳税人的增值税账务处理
  • 其他收入属于什么收入
  • 建账的注意事项
  • 微软9月补丁
  • WIN10系统硬盘设置
  • linux 对比文件
  • win7资源管理器频繁崩溃
  • ubuntu安装office2019
  • win8怎么禁用更新
  • windows全局搜索快捷键
  • windows7右下角网络图标不见了怎么办
  • win7系统如何修改默认浏览器
  • win8怎么设置
  • three.js 文档
  • socket pf_inet
  • oracle shell脚本
  • css网页布局方式
  • 记录心率
  • unity3d 依赖注入
  • js快速生成数组
  • unity3d手机怎么打开
  • linux查看shell脚本内容
  • dom操作的方法
  • python坑人代码
  • jQuery 获取跨域XML(RSS)数据的相关总结分析
  • 上海烟草集团董事长是谁
  • 云南省税务申报流程
  • 广西电子税务局登陆入口
  • 技术服务费减免企业所得税政策
  • 国家税务总局16号文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设