(转)Python3.5 queue模块详解
2024-08-24 05:03:15
原文:https://www.cnblogs.com/CongZhang/p/5274486.html
queue介绍
- queue是python中的标准库,俗称队列,可以直接import 引用,在python2.x中,模块名为Queue
- 在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换的时候,队列就出现了,队列可以完美解决线程间的数据交换,保证线程间数据的安全性和一致性
queue模块有三种队列及构造函数:
- Python queue模块的FIFO队列先进先出。 class queue.Queue(maxsize)
- LIFO类似于堆,即先进后出。 class queue.LifoQueue(maxsize)
- 还有一种是优先级队列级别越低越先出来。 class queue.PriorityQueue(maxsize)
queue模块中的常用方法:
- queue.qsize() 返回队列的大小
- queue.empty() 如果队列为空,返回True,反之False
- queue.full() 如果队列满了,返回True,反之False
- queue.full 与 maxsize 大小对应
- queue.get([block[, timeout]])获取队列,timeout等待时间
- queue.get_nowait() 相当queue.get(False)
- queue.put(item) 写入队列,timeout等待时间
- queue.put_nowait(item) 相当queue.put(item, False)
- queue.task_done() 在完成一项工作之后,queue.task_done()函数向任务已经完成的队列发送一个信号
- queue.join() 实际上意味着等到队列为空,再执行别的操作
最新文章
- 字符串匹配算法 - KMP
- XE5 修复 安卓 输入法隐藏 后 无法退出的问题 3.2
- java中常用的工具类(一)
- Hadoop数据读写原理
- C++函数内存占用
- Load Balancing 折半枚举大法好啊
- OC5_Block
- Linq to SQL 绑定 ComboBox
- HDU5627--Clarke and MST (bfs+位运算)
- 谁动了我的timer?——C#的垃圾回收和调试
- ASA基本配置
- Shark集群搭建配置
- quagga源码分析--通用库command
- 软件测试作业1 — 令我印象最深的BUG
- Cacti在selinux开启的情况下使用
- 【JZOJ4307】喝喝喝
- python粗谈面向对象(一)
- [转]NSIS 制作安装包无法创建桌面快捷方式或无法删除开始菜单项
- java jar 后台运行
- [CQOI2018]交错序列