python内置模块之queue(队列)用法
queue是python3的内置模块,创建堆栈队列,用来处理多线程通信,队列对象构造方法如下:
queue.Queue(maxsize=0)
是先进先出(First In First Out: FIFO)队列。
入参 maxsize 是一个整数,用于设置队列的最大长度。一旦队列达到上限,插入数据将会被阻塞,直到有数据出队列之后才可以继续插入。如果 maxsize 设置为小于或等于零,则队列的长度没有限制。
主要方法有如下几个:
- qsize():返回队列中数据元素的个数。
- empty():如果队列为空,返回 True,否则返回 False。
- full():如果队列中元素个数达到上限,返回 True,否则返回 False。
- put(item, block=True, timeout=None):
- item,放入队列中的数据元素。
- block和timeout参数,当队列中元素个数达到上限继续往里放数据时:
- 如果 block=False,直接引发 Full 异常;
- 如果 block=True,且 timeout=None,则一直等待直到有数据出队列后可以放入数据;
- 如果 block=True,且 timeout=N,N 为某一正整数时,则等待 N 秒,如果队列中还没有位置放入数据就引发 Full 异常。timeout,设置超时时间。
- put_nowait(item)相当于 put(item, block=False),当队列中元素个数达到上限继续往里放数据时直接引发 Full 异常。
- get(block=True, timeout=None):从队列中取出数据并返回该数据内容。
- block,当队列中没有数据元素继续取数据时:
- 如果 block=False,直接引发Empty 异常;
- 如果 block=True,且 timeout=None,则一直等待直到有数据入队列后可以取出数据;
- 如果 block=True,且 timeout=N,N 为某一正整数时,则等待 N 秒,如果队列中还没有数据放入的话就引发 Empty 异常。timeout,设置超时时间。
- block,当队列中没有数据元素继续取数据时:
- get_nowait():相当于 get(block=False)block,当队列中没有数据元素继续取数据时直接引发 Empty 异常。
简单使用示例
import queue
q = queue.Queue() # 创建 Queue 队列
for i in range(3):q.put(i) # 在队列中依次插入0、1、2元素
for i in range(3):print(q.get()) # 依次从队列中取出插入的元素,数据元素输出顺序为0、1、2
end
相关文章:
python内置模块之queue(队列)用法
queue是python3的内置模块,创建堆栈队列,用来处理多线程通信,队列对象构造方法如下: queue.Queue(maxsize0) 是先进先出(First In First Out: FIFO)队列。 入参 maxsize 是一个整数,用于设置…...
Spring Security——结合JWT实现令牌的验证与授权
目录 JWT(JSON Web Token) 项目总结 新建一个SpringBoot项目 pom.xml PayloadDto JwtUtil工具类 MyAuthenticationSuccessHandler(验证成功处理器) JwtAuthenticationFilter(自定义token过滤器) W…...
Vector的底层结构剖析
vector的介绍: 1.Vector实现了List接口的集合。 2.Vector的底层也是一个数组,protected Object[] elementData; 3.Vector 是线程同步的,即线程安全,Vector类的操作方法带有Synchronized. 4.在开发中,需要线程同步时࿰…...
实现抖音视频滑动功能vue3+swiper
首先,你需要安装和引入Swiper库。可以使用npm或者yarn进行安装。 pnpm install swiper然后在Vue组件中引入Swiper库和样式。 // 导入Swiper组件和SwiperSlide组件,用于创建轮播图 import {Swiper, SwiperSlide } from swiper/vue; // 导入Swiper的CSS样式,确保轮播图的正确…...
Linux文件系统【真的很详细】
目录 一.认识磁盘 1.1磁盘的物理结构 1.2磁盘的存储结构 1.3磁盘的逻辑存储结构 二.理解文件系统 2.1如何管理磁盘 2.2如何在磁盘中找到文件 2.3关于文件名 哈喽,大家好。今天我们学习文件系统,我们之前在Linux基础IO中研究的是进程和被打开文件…...
JAVA学习笔记DAY5——Spring_Ioc
文章目录 Bean配置注解方式配置注解配置文件调用组件 注解方法作用域 DI注入注解引用类型自动装配文件结构自动装配实现 基本数据类型DI装配 Bean配置 注解方式配置 类上添加Ioc注解配置文件中告诉SpringIoc容器要检查哪些包 注解仅是一个标记 注解 不同注解仅是为了方便开…...
WPF中的隧道路由和冒泡路由事件
文章目录 简介:一、事件最基本的用法二、理解路由事件 简介: WPF中使用路由事件升级了传统应用开发中的事件,在WPF中使用路由事件能更好的处理事件相关的逻辑,我们从这篇开始整理事件的用法和什么是直接路由,什么是冒…...
ISO七层模型 tcp/ip
OSI七层模型(重点例子) OSI(Open Systems Interconnection)模型,也称为开放系统互连模型,是一个理论模型,由国际标准化组织(ISO)制定,用于描述和理解不同网络…...
MySQL的三种重要的日志
日志 Mysql有三大日志系统 Undo Log(回滚日志):记录修改前的数据,用于事务回滚和 MVCC(多版本并发控制)。 Redo Log(重做日志):记录数据变更,用于崩溃恢复&…...
神经网络学习2
张量(Tensor)是深度学习和科学计算中的基本数据结构,用于表示多维数组。张量可以看作是一个更广义的概念,涵盖了标量、向量、矩阵以及更高维度的数据结构。具体来说,张量的维度可以是以下几种形式: 标量&am…...
Spring Boot整合Redis通过Zset数据类型+定时任务实现延迟队列
😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…...
Android入门第69天-AndroidStudio中的Gradle使用国内镜像最强教程
背景 AndroidStudio默认连接的是dl.google的gadle仓库。 每次重新build时: 下载速度慢;等待了半天总时build faild;build到一半connection timeout;即使使用了魔法也难以一次build好;这严重影响了我们的学习、开发效率。 当前网络上的使用国内镜像的教程不全 网上的教程…...
深入浅出 Qt 中 QListView 的设计思想,并掌握大规模、高性能列表的实现方法
在大规模列表控件的显示需求中,必须解决2个问题才能获得较好的性能: 第一就是数据存在哪里, 避免出现数据的副本。第二就是如何展示Item,如何复用或避免创建大量的Item控件。 在QListView体系里,QAbstractListModel解…...
课设--学生成绩管理系统
欢迎来到 Papicatch的博客 文章目录 🍉技术核心 🍉引言 🍈标识 🍈背景 🍈项目概述 🍈 文档概述 🍉可行性分析的前提 🍈项目的要求 🍈项目的目标 🍈…...
MySQL性能分析
一、查看执行频率 sql执行频率,执行下述指令可以看到select,update,delete等操作的次数 show global status like Com_______; 具体我们在终端登录mysql看下,使用下述命令登录mysql,并输入命令 mysql -u 用户名 -p 上述查询,删…...
为什么要学习Flink系统管理及优化课程?
Flink系统是一种流式处理框架,能够高效地处理大规模数据流。然而,要确保Flink系统的正常运行,就需要进行系统管理和优化。系统管理是指对Flink集群的监控、调度和维护,而系统优化则是指通过调整参数和优化算法,提高Fli…...
把本机的bash构建到docker镜像里面
最近突发奇想,想把本机的bash放到docker镜像里面,接下来看操作。 获取bash以及依赖 [rootbogon ~]# cat get_lib_info.sh #!/bin/bash# 函数:显示帮助信息 show_help() {echo "Usage: $(basename "$0") -h -f <file>…...
【数据分析】推断统计学及Python实现
各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…...
探索交互的本质:从指令到界面的演进与Linux基础指令的深入剖析
目录 1.指令 vs 界面//选读 1.1交互的需求 满足需求的第一阶段-指令 满足需求的第二阶段-界面 1.2 指令 和 界面交互 区别 2.操作系统介绍 2.1 举例说明 驱动软件层 2.2 为什么要有操作系统? 0x03 为什么要进行指令操作? 3.Linux基本指令 l…...
uniapp vue分享功能集成
分享必须通过button设置open-type"share"拉起 <view class"img horizontal center" style"margin-right: 20rpx;"><image class"img" :src"src" click"onTapClick(xxx)" style"z-index: 1;" …...
深入解析BUCK、BOOST与Charge Pump电路的设计与应用
1. 开关电源基础:为什么需要BUCK、BOOST和Charge Pump? 刚入行那会儿,我总觉得电源设计就是个"变压器加整流桥"的事,直到某次项目里把12V电池直接怼到3.3V的MCU上——随着一缕青烟升起,我才明白电压转换这门…...
OpenClaw安全实践:GLM-4.7-Flash本地化部署的权限控制指南
OpenClaw安全实践:GLM-4.7-Flash本地化部署的权限控制指南 1. 为什么需要关注OpenClaw的权限控制? 去年夏天,我在整理电脑上的财务报告时,无意中发现OpenClaw自动将我的税务文件同步到了一个陌生目录。这个意外让我意识到——当…...
《计算机网络》再学习
1.TCP/IP与OSI模型1)TCP/IP模型应用层:为程序提供网络服务。协议:HTTP,DNS与FTP等传输层:提供端到端的通信服务,确保数据的可靠传输。协议:TCP与UDP网络层:负责数据包的路由与转发。…...
别再瞎找了!盘点2026年顶流之选的AI论文写作软件
一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂的AI论文写作软件来了,实测提速效果惊人,覆盖选题、撰写、查重、排版全流程,让你高效搞定论文不再难。 一、全流程王者:一站式搞定论文全链路(一天定稿首选&am…...
步进电机复位翻车实录:从堵转到精准归位的5个调试技巧
步进电机复位翻车实录:从堵转到精准归位的5个调试技巧 去年夏天,我接手了一个工业自动化项目,需要精确控制12台42步进电机同步复位。本以为是个常规任务,结果第一周就遭遇了集体"罢工"——有的电机原地抖动不归零&#…...
在六亩半,春天不是日历上的数字,而是泥土间的青草香
当城市里的春天还停留在气温起伏的天气预报里,六亩半手作文创园的春意,早已从土地深处探出头来。那是荠菜嫩芽拱开泥土的力道,是柳条抽出新绿的柔软,是孩子们蹲在田埂上、指尖沾满青草汁液的鲜活记忆。在这里,春天不是…...
ESP32烧录全攻略:从命令行到GUI工具,新手也能轻松搞定
ESP32烧录全攻略:从命令行到GUI工具,新手也能轻松搞定 第一次接触ESP32开发板时,那块小小的芯片里蕴藏着无限可能,但如何将自己的代码"装进"这个硬件大脑却成了拦路虎。记得我最初尝试烧录时,面对各种专业术…...
Bladed 4.3 软件安装与学习研究环境搭建指南
1. Bladed 4.3软件简介与学习用途说明 Bladed是风力发电行业广泛使用的专业仿真软件,由英国Garrad Hassan公司开发(现属DNV集团)。它能够模拟风力发电机组的动态性能、载荷计算和控制系统设计,是风电工程师和研究人员的核心工具之…...
5分钟完成专业级黑苹果配置:OpCore Simplify终极简化指南
5分钟完成专业级黑苹果配置:OpCore Simplify终极简化指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经为黑苹果配置的复杂性…...
Bitahub算力上新 RTX3080 10G重磅登场
针对当前 AI 开发与科研场景中算力成本高、配置复杂的痛点,Bitahub 平台推出了 RTX3080 10G 显卡算力服务。该显卡具备 10GB 显存,能够满足模型训练、推理等多场景算力需求,同时平台定价极具竞争力:单卡低至 0.82 元 / 小时&#…...
