Python中线程安全队列Queue的示例分析
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下Python中线程安全队列Queue的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、什么是队列?像排队一样,从头到尾排成一排,还可以有人继续往后排队,这
千家信息网最后更新 2026年11月03日Python中线程安全队列Queue的示例分析
小编给大家分享一下Python中线程安全队列Queue的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
一、什么是队列?
像排队一样,从头到尾排成一排,还可以有人继续往后排队,这就是队列。
这里学委想说的是Queue这个类, 它是queue这个内置模块内的一个类。
import queueq = queue.Queue(5) #可以传入参数指定队列大小queue.Queue()# 不传或者给0或者<0的数字则创建一个无限长度的队列
它提供了很多函数,下面几个函数,我们使用的比较多:
get: 获取并移除队头元素,就是出队put: 往队列末尾加入元素,也就是后来者排队qsize: 获取队列的长度empty: 队列空了,没有人在排了full: 队列满了。
看着比较枯燥,学委画了下图展示:
这个队列put了3次,依次放入:持续学习,持续开发,我雷学委。队列长度为3
二、队列基操 入队/出队/查队列状态
准备了下面的代码:
import queueq = queue.Queue(5)print("学委粉丝队列:", q)print("空队,学委粉丝队列大小:", q.qsize())print("空队列?", q.empty())for i in range(5): q.put(i)print("队列满了?", q.full())print("排满了,学委粉丝队列大小:", q.qsize())while not q.empty(): print("粉丝 %s 出队点赞!" % q.get())print("最后,学委粉丝队列大小:", q.qsize())这段代码创建了一个长的为5的队列。
然后一个循环写满队列,接着再依此出队,粉丝出队点赞。
下面是运行效果:
是不是很简单。
三、Queue是一个线程安全的类
前面几篇文章,碰到下面的代码(反复读写共享变量)结果总是出乎依赖!
amount = 100def transfer(money): global amount for i in range(100000): amount += money
如果我们对队列进行反复读写,会不会出现问题呢?
不妨,写个代码验收一下:
import queueimport threadingxuewei_fans_q = queue.Queue()def transfer(money): for i in range(100000): xuewei_fans_q.put(money) xuewei_fans_q.get()# 创建4个任务重复给学委加关注/脱粉(还是希望各位编程的明日之星跟着学习,共同进步!)t_group = []for i in range(10): t = threading.Thread(target=lambda: transfer(-1)) t_group.append(t) t.start() t = threading.Thread(target=lambda: transfer(1)) t_group.append(t) t.start() t = threading.Thread(target=lambda: transfer(-1)) t_group.append(t) t.start() t = threading.Thread(target=lambda: transfer(1)) t_group.append(t) t.start()for t in t_group: t.join()print("-" * 16)print("活跃线程数:", threading.active_count())print("活跃线程:", threading.current_thread().name)#反复对队列进行添加数据,移除数据,队列最后清零了print("学委粉丝队列:", xuewei_fans_q.qsize())不管运行多少次,队列(希望是黑粉队列)都为0元素。
看完了这篇文章,相信你对"Python中线程安全队列Queue的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
队列
粉丝
线程
代码
大小
安全
元素
篇文章
长度
示例
分析
函数
就是
数据
面的
学习
运行
枯燥
从头到尾
下图
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
广州万易互联网科技有限公司
苏州找大状互联网科技有限公司
科技互联网项目
互联网科技公司税收优惠
互联网 科技
互联网未来科技
万易互联网科技有限公司
紫鲸互联网科技
朗涯互联网科技
科技创新互联网企业
伴你行互联网科技有限公司
互联网科技视频素材
互联网 科技服务平台
科技伦理 互联网公司
海南购全球互联网科技
茂名市互联网科技产业园
开一家科技互联网公司需要多少钱
乌鲁木齐新华智原互联网科技学校
互联网科技和法律行业
互联网科技海报
互联网科技活动banner
金融科技与互联网金融
互联网医疗科技
亿账通互联网科技
互联网科技的未来发展
互联网之后的科技是什么
新华互联网科技2019
互联网公司科技股
35岁以上互联网科技行业