大聊Python----quene队列
当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用。
class queue.Queue(maxsize=0) # 先入先出
class queue.LifoQueue(maxsize=0) # 后进先出
class queue.PriorityQueue(maxsize=0) # 存储数据时可设置优先级的队列
优先级队列的构造函数。 maxsize是一个整数,用于设置可以放入队列数目的上限。 达到此大小后,插入将阻止,直到消耗队列项。 如果maxsize小于或等于零,则队列大小为无限大
首先检索最低值的条目(最低值条目是由sorted(list(entries))[0]返回的条目。 条目的典型模式是以下形式的元组:(priority_number,data)。
exception queue.Empty #在空的Queue对象上调用非阻塞get()(或get_nowait())时引发的异常。
exception queue.Full #在已满的Queue对象上调用非阻塞put()(或put_nowait())时引发异常。
Queue.qsize()
Queue.empty() #return如果为空则为真
Queue.full() #如果已满,则返回True
Queue.put(项目,块=真,超时=无)
将项目放入队列。 如果可选的args块为true且timeout为None(默认值),则在必要时阻塞,直到有空闲插槽可用。 如果timeout是一个正数,则它会阻止最多超时秒,如果在该时间内没有可用的空闲槽,则会引发Full异常。 否则(块为假),如果空闲插槽立即可用,则将项目放在队列中,否则引发完全异常(在这种情况下忽略超时)。
Queue.put_nowait(item) #相当于 put(item,False)。
Queue.get(块=真,超时=无)
从队列中删除并返回一个项目。 如果可选的args块为true且timeout为None(默认值),则在必要时阻止,直到某个项可用为止。 如果timeout是一个正数,则它会阻止最多超时秒,如果在该时间内没有可用的项,则会引发Empty异常。 否则(块为假),如果一个项立即可用,则返回一个项,否则引发Empty异常(在这种情况下忽略超时)。
Queue.get_nowait() #相当于get(False)。
提供了两种方法来跟踪队列任务是否被守护进程使用者线程完全处理。
Queue.task_done()
指示先前进入队列的任务已经完成。用于队列使用者线程。对于用于获取任务的每个get(),对task_done()的后续调用告诉队列,任务的处理是完整的。
如果join()当前正在阻塞,则它将在所有项目都已处理后恢复(这意味着已为每个已放入队列的项目收到task_done()调用)。
如果调用的次数超过队列中放置的项目,则引发ValueError。
大聊Python----quene队列的更多相关文章
- 大聊Python----协程
协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来 ...
- python 循环队列的实现
最近在做一个东西的时候发现需要用到循环队列,实现先进先出(FIFO),不断往里面添加数据,当达到某个限定值时,最先进去的出去,然后再添加.之后需要对队列里面的内容进行一个筛选,作其他处理.首先我想到了 ...
- Python - 和我聊Python节目最新一期介绍 - 257期:使用超级电脑,Python,射电天文学知识来探索银河系
今天,给大家简单介绍和我聊Python的最新一期节目,第257期:使用超级电脑,Python,射电天文学知识来探索银河系. 听着标题就觉得高大上,是的,我也是这么认为的.这次请的嘉宾来头很大,来自国际 ...
- Python - 翻译Talk Python To Me (和我聊Python) 播客
“和我聊Python”是一个美国的聊天播客,英文名Talk Python To Me,类似于喜马拉雅的音频课程节目,只不过这个主题是编程语言Python.该节目从2015年的节目到现在,已经超过256 ...
- python消息队列snakemq使用总结
Python 消息队列snakemq总结 最近学习消息总线zeromq,在网上搜了python实现的消息总线模块,意外发现有个消息队列snakemq,于是拿来研究一下,感觉还是很不错的,入手简单使用也 ...
- python RabbitMQ队列使用(入门篇)
---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种que ...
- 让大蛇(Python)帮你找工作
前段时间用Python实现了一个网络爬虫(让大蛇(Python)帮你找工作),效率总体还可以,但是缺点就是每次都需要手动的去触发,于是打算对该爬虫加上Timer,经过网上一番搜索以及API的查询,发现 ...
- Python之队列Queue
今天我们来了解一下python的队列(Queue) queue is especiall useful in threaded programming when information must be ...
- Python消息队列工具 Python-rq 中文教程
原创文章,作者:Damon付,如若转载,请注明出处:<Python消息队列工具 Python-rq 中文教程>http://www.tiangr.com/python-xiao-xi-du ...
- Python 用队列实现多线程并发
# Python queue队列,实现并发,在网站多线程推荐最后也一个例子,比这货简单,但是不够规范 # encoding: utf-8 __author__ = 'yeayee.com' # 由本站 ...
随机推荐
- 3dContactPointAnnotationTool开发日志(十一)
把image也做成panel的形式了,并且放进了scrollView里,真实地显示出图像: 其它两个scrollView的content也做成自适应大小了,就是添加一项content的heig ...
- SQL SERVER技术内幕之7 透视与逆透视
1.透视转换 透视数据(pivoting)是一种把数据从行的状态旋转为列的状态的处理,在这个过程中可能须要对值进行聚合. 每个透视转换将涉及三个逻辑处理阶段,每个阶段都有相关的元素:分组阶段处理相关的 ...
- dedecms给原模型添加新字段
1.进入dedecms后台 2.点击核心=>频道模型=>内容模型管理(在这里可以看到dedecms预设的模型设置) 3.选中我们需要的模型,点击更改,跳入以下页面 4.点击字段管理(可以看 ...
- 使用户浏览器添加没有的字体@font-face
@font-face的用法 @font-face { font-family: 'MyWebFont'; src: url('webfont.eot'); /* IE9 Compat Modes */ ...
- JAVA的泛型与反射的联合应用
通过泛型与反射的结合,可以编写框架来使开发更容易,这里演示的是BaseDao部分的简单使用. BaseDao部分代码: public abstract class BaseDao<T>{ ...
- jzoj3865[JSOI2014]士兵部署
‘ 数据范围:n,m<=10^5,传送门:https://jzoj.net/senior/#main/show/3865 感觉jzoj好高明啊,就是访问不太稳定. 首先题意中被n个点控制的区域相 ...
- Python 嵌套函数和闭包
Python 嵌套函数和闭包 1.函数嵌套 如果在一个函数内部定义了另一个函数,我们称外部的函数为外函数,内部的函数为内函数,如下代码: def out_func(): def inner_func1 ...
- springboot2.0 快速集成kafka
一.kafka搭建 参照<kafka搭建笔记> 二.版本 springboot版本 <parent> <groupId>org.springframework.bo ...
- [2018集训队作业][UOJ450] 复读机 [DP+泰勒展开+单位根反演]
题面 传送门 思路 本文中所有$m$是原题目中的$k$ 首先,这个一看就是$d=1,2,3$数据分治 d=1 不说了,很简单,$m^n$ d=2 先上个$dp$试试 设$dp[i][j]$表示前$i$ ...
- ARC077C pushpush 递推
---题面--- 题解: 貌似一般c题都是递推... 观察到最后一个插入的数一定在第一个,倒数第二个插入的数一定在倒数第一个,倒数第三个插入的数一定在第2个,倒数第四个插入的数一定在倒数第2个…… O ...