首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

队列

作者头像
小小咸鱼YwY
发布于 2019-07-24 08:46:05
发布于 2019-07-24 08:46:05
5390
举报
文章被收录于专栏:python-爬虫python-爬虫

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异常:只有非阻塞的时候,队列满了,继续放数据才会出现异常
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python之queue模块
  queue模块实现了多生产者,多消费者的队列。当要求信息必须在多线程间安全交换,这个模块在同步线程编程时非常有用 ,Queue模块实现了所有要求的锁机制。
全栈程序员站长
2022/07/18
4390
Python 队列
Python 实现了 Queue,LifoQueue,PriorityQueue,SimpleQueue
为为为什么
2022/08/09
4520
Python:线程、进程与协程(3)——
    Queue模块是提供队列操作的模块,队列是线程间最常用的交换数据的形式。该模块提供了三种队列:
py3study
2020/01/03
4480
进程间通信-Queue
1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理: #coding=utf-8 from multiprocessing import Queue q=Queue(3) #初始化一个Queue对象,最多可接收三条put消息 q.put("消息1") q.put("消息2") print(q.full()) #False q.put("消息3") print(q.full
汪凡
2019/02/28
4450
我要学python之python语法及规
单行注释: # 多行注释: """ 写入注释内容 """ ''' 写入多行注释内容 '''
py3study
2020/01/14
3830
python数据结构之队列
python内置的queue模块实现了三种类型的队列,因此没有必要重复造轮子,它们的区别仅仅是条目取回的顺序。在 FIFO 队列中,先添加的任务先取回。在 LIFO 队列中,最近被添加的条目先取回(操作类似一个堆栈)。优先级队列中,条目将保持排序( 使用 heapq 模块 ) 并且最小值的条目第一个返回。
python与大数据分析
2022/03/11
3540
python数据结构之队列
python:Queue模块
Queue.get([block[, timeout]]) 获取队列,timeout等待时间
py3study
2020/01/06
7140
生产者、消费者模型---Queue类
Queue队列在几乎每种编程语言都会有,python的列表隐藏的一个特点就是一个后进先出(LIFO)队列。而本文所讨论的Queue是python标准库queue中的一个类。它的原理与列表相似,但是先进先出(FIFO)队列。而内部实现更为完善,有很好的数据保护机制和较高的稳定性。
py3study
2020/01/20
4330
Python基本数据类型(四)
Queue是python标准库中的线程安全的队列FIFO(先进先出)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递;
py3study
2020/01/15
6200
线程、进程、协程和GIL(三)
上一篇文章介绍了:创建线程的两种方式、Event对象判断线程是否启动、利用信号量控制线程并发。
py3study
2020/01/21
4210
python Queue模块
Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。
周小董
2019/03/25
1.1K0
Python 队列Queue和Prior
Python的Queue模块适用于多线程编程的FIFO实现。它可用于在生产者(producer)和消费者(consumer)之间线程安全(thread-safe)地传递消息或其它数据,因此多个线程可以共用同一个Queue实例。
py3study
2020/01/13
7290
Python | Queue 队列源码分析
queue 模块提供适用于多线程编程的先进先出(FIFO)数据结构。因为它是线程安全的,所以多个线程很轻松地使用同一个实例。
咸鱼学Python
2020/04/08
1.2K0
[python模块]队列queue
因为queue使用了一个线程锁(pthread.Lock()),以及三个条件变量(pthread.condition()),来保证了线程安全。
py3study
2020/01/07
4650
Python -- Queue模块
最近的一个项目中在使用grpc时遇到一个问题,由于client端可多达200,每个端口每10s向grpc server发送一次请求,server端接受client的请求后根据request信息更新数据库,再将数据库和配置文件的某些数据封装后返回给client。原代码的性能是0.26s/request,远远达不到所需性能,其中数据库更新操作耗时达到80%,其中一个优化点就是将数据库更新操作放在独立的线程中。 在次之前没有使用过线程编码,学以致用后本着加深理解的想法,将这个过程记录下来,这里先记下用于线程间通信的队列Queue的相关知识。
py3study
2020/01/05
1.2K0
python 进程间通信(三) -- 进程同步原语及管道与队列
此前我们介绍了 python 中的多进程包 multiprocessing 以及 signal 包提供的最基本的进程间通信方式 — 信号。 通过 multiprocessing 实现 python 多进程 python 进程间通信(一) — 信号的基本使用 python 进程间通信(二) — 定时信号 SIGALRM
用户3147702
2022/06/27
8820
python 进程间通信(三) -- 进程同步原语及管道与队列
并发篇-python并发通信-3
.qsize() 返回队列的大小 .empty() 如果队列为空,返回True,反之False .full() 如果队列满了,返回True,反之False .full 与 maxsize 大小对应 .get([block[, timeout]])获取队列,timeout等待时间 .get_nowait() 相当Queue.get(False) .put(item) 写入队列,timeout等待时间 .put_nowait(item) 相当Queue.put(item, False) .task_done
小团子
2019/07/18
8910
并发篇-python并发通信-3
Python快速学习第十一天--Python多线程
Python中使用线程有三种方式: 方法一:函数式 调用thread模块中的start_new_thread()函数来产生新线程。语法如下: thread.start_new_thread ( f
汤高
2018/01/11
1.1K0
Python快速学习第十一天--Python多线程
并发篇-python并发通信-2
死锁是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
小团子
2019/07/18
7400
并发篇-python并发通信-2
35.python 线程队列Queue-FIFO
之前的文章中讲解很多关于线程间通信的知识,比如:线程互斥锁lock,线程事件event,线程条件变量condition 等等,这些都是在开发中经常使用的内容,而今天继续给大家讲解一个更重要的知识点 — 线程队列queue。
猿说编程[Python和C]
2020/03/12
1.1K0
35.python 线程队列Queue-FIFO
相关推荐
Python之queue模块
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档