热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享Python线程之线程安全的队列Queue

一、什么是队列?像排队一样,从头到尾排成一排,还可以有人继续往后排队,这就是队列。这里学委想说的是queue这个类,它是queue这个内置模块内的一个类。它提供了很多函数,下面几个

一、什么是队列?

像排队一样,从头到尾排成一排,还可以有人继续往后排队,这就是队列。

这里学委想说的是queue这个类, 它是queue这个内置模块内的一个类。

它提供了很多函数,下面几个函数,我们使用的比较多:

  • get: 获取并移除队头元素,就是出队
  • put: 往队列末尾加入元素,也就是后来者排队
  • qsize: 获取队列的长度
  • empty: 队列空了,没有人在排了
  • full: 队列满了。

看着比较枯燥,学委画了下图展示:

Python线程之线程安全的队列Queue

这个队列put了3次,依次放入:持续学习,持续开发,我雷学委。队列长度为3

二、队列基操 入队/出队/查队列状态

准备了下面的代码:

这段代码创建了一个长的为5的队列。

然后一个循环写满队列,接着再依此出队,粉丝出队点赞。

下面是运行效果:

Python线程之线程安全的队列Queue

是不是很简单。

三、queue是一个线程安全的类

前面几篇文章,碰到下面的代码(反复读写共享变量)结果总是出乎依赖!

如果我们对队列进行反复读写,会不会出现问题呢?

不妨,写个代码验收一下:

不管运行多少次,队列(希望是黑粉队列)都为0元素。

Python线程之线程安全的队列Queue

总结:
本篇学委分享了一个线程安全的队列queue,这个非常重要!但是队列queue这个类是线程安全的,这个是经过验证的

到此这篇关于python线程之线程安全的队列的文章就介绍到这了,更多相关python线程安全队列内容请搜索<编程笔记>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<编程笔记>!

需要了解更多python教程分享Python线程之线程安全的队列Queue,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 一、死锁现象与递归锁进程也是有死锁的所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ... [详细]
  • python教程分享python单例模式之selenium driver实现单例
    一、使用装饰器实现单例二、web自动化driver实现单例模式2.1编写单例模式的装饰器2.2driver使用装饰器,实现单例模式2.3获取driver的实例,就是单例了三、在自动 ... [详细]
  • python教程分享POC漏洞批量验证程序Python脚本编写
    编写目的批量验证poc,python代码练习。需求分析1、poc尽可能简单。2、多线程。3、联动fofa获取目标。4、随机请求头.实现过程脚本分为三个模块,获取poc及目标、多线程 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • 第七课主要内容:多进程多线程FIFO,LIFO,优先队列线程局部变量进程与线程的选择线程池异步IO概念及twisted案例股票数据抓取 ... [详细]
  • RingBuffer,或者说CircularBuffer,是一个长度固定的缓冲区,当从一端插入元素超过指定的最大长度时,缓冲区另一端的元素 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • python教程分享python人物视频背景替换实现虚拟空间穿梭
    引言近期网上这位卖蜂蜜的小伙鬼畜挺火的,大家质疑背景造假,这里我就带着大家实现“背景造假”(ps:原视频小伙是在真实场景拍摄的)准备工作在实现该功能之前,我 ... [详细]
  • 正常情况下,我们完成一件事情的过程中,可能会存在多种条件限制如:用户去ATM机取钱->输入取款密码->输入正确,取钱成功|输入错误,退卡。这样的情况下,需要根据不同的条件,执行不同的逻 ... [详细]
  • importurllib.requestimportos#用于获取煎蛋网页面的函数defurl_open(url):requrllib.request.Request(url) ... [详细]
  • Python3从入门到放弃最后更新时间:2017-09-2503:05目录:第一章:HelloWorld第二章:输入和输出附录:常用的Python内置函数第一章:Hell ... [详细]
author-avatar
mobiledu2502886233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有