python中queue使用_在python2.6中使用Queue类
假设我一直在使用Python2.6,无法升级(即使这会有帮助)。我编写了一个使用Queue类的程序。我的producer是一个简单的目录列表。我的使用者线程从队列中提取一个文件,并对其进行处理。如果文件已经处理过,我跳过它。已处理的列表是在所有线程启动之前生成的,因此它不是空的。在
这里有一些伪代码。在import Queue, sys, threading
processed = []
def consumer():
while True:
file = dirlist.get(block=True)
if file in processed:
print "Ignoring %s" % file
else:
# do stuff here
dirlist.task_done()
dirlist = Queue.Queue()
for f in os.listdir("/some/dir"):
dirlist.put(f)
max_threads = 8
for i in range(max_threads):
thr = Thread(target=consumer)
thr.start()
dirlist.join()
我得到的奇怪行为是,如果一个线程遇到一个已经被处理的文件,线程就会暂停并等待直到整个程序结束。我做了一点测试,前7个线程(假设8个是最大值)停止,而第8个线程继续处理,一次一个文件。但是,这样做,我就失去了应用程序线程化的全部理由。在
是我做错了什么,还是这是Python2.6中队列/线程类的预期行为?在
python中queue使用_在python2.6中使用Queue类相关推荐
- python2中可以使用print()函数吗_在Python2.x中使用print()(函数版本)
我理解语句和表达式之间的区别,我理解Python3将print()转换为函数. 但是我在各种Python2.x解释器上运行了一个用括号括起来的print()语句,它运行完美,我甚至不需要导入任何模块. ...
- python 运行r语言_如何在R中运行Python
python 运行r语言 尽管我很喜欢R,但很显然Python还是一种很棒的语言-既适用于数据科学又适用于通用计算. R用户想要在Python中做一些事情可能有充分的理由. 也许这是一个很棒的库,还没 ...
- python领域的名人_计算任意视频中各人物的出镜时间(附Python实现)
作者:Pulkit Sharma 编译:Bing 编者按:本文作者Pulkit Sharma分享了一篇有趣的项目,以<猫和老鼠>为例,计算任意视频中汤姆猫和杰瑞鼠的出镜时长.这一模型也可以 ...
- python存储大量数据_如何在文件中密集地存储大量数据?
如果你期望存储一个均匀分布的数字,那么看看疯狂的物理学家的答案.但是,如果您预期存储的大部分是小数字,但需要能够存储一些大的数字,那么这些方案可能也很有用.在 如果只需要考虑长度为255字节或更少字节 ...
- python运行按钮灰色_关于Android Studio中Run按钮是灰色的解决
今天导入一个别人的项目,在导入之前是老方法,覆盖了三个关键文件之后(.gradle文件夹的内容版本若与本地不一,也应删掉),重启AS: 然而嗯,运行按钮居然灰色.. 查了一下论坛,额,然后我这里是只做 ...
- 范数在机器学习中的作用_设计在机器学习中的作用
范数在机器学习中的作用 Today, machine learning (ML) is a component of practically all new software products. Fo ...
- 统计信息在数据库中的作用_统计在行业中的作用
统计信息在数据库中的作用 数据科学与机器学习 (DATA SCIENCE AND MACHINE LEARNING) Statistics are everywhere, and most indus ...
- 符号在excel中的引用_如何在Excel中添加项目符号
&符号在excel中的引用 There's no built-in feature for bullets in Excel, like there is in a Word document ...
- python 倒叙 数组_打基础一定要吃透这12类 Python 内置函数
内置函数就是python给你提供的, 拿来直接用的函数,比如print.,input等.截止到python版本3.6.2 python一共提供了68个内置函数,我将它们分成 12 类,方便你学习. s ...
最新文章
- Equalizing Two Strings 冒泡排序or树状数组
- ARM 之九 Cortex-M/R 内核启动过程 / 程序启动流程(基于ARMCC、Keil)
- android mvvm框架搭建_轻松搭建基于JetPack组件的MVVM框架
- 使用SQLite3存储和读取数据
- 小米暑期实习在线笔试2015-04-25
- 华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...
- 内容分发网络(CDN) 是什么
- 阿里高级技术专家方法论:如何写复杂业务代码?
- 图解java_图解 Java 中的数据结构及原理!
- 检查oracle用户默认密码的账户
- 数据仓库与数据挖掘(二)
- 社会资源全整合 视频监控全覆盖
- websockets 断开问题解决方案
- 如何在手机浏览器中实现条形码/QR码扫描
- 双 JK 触发器 74LS112 逻辑功能。真值表_C08. D触发器
- slitaz linux 包管理器,SliTaz
- 2021年新年元旦,新年开篇两首毛泽东诗词——沁园春:恰同学少年,风华正茂。书生意气,挥斥方遒……...
- ARP报文的存入条件和回复条件
- 2020软科中国计算机学科排名,【智库数据】基于2020软科中国最好学科排名的学科动态发展跟踪...
- 如何获取股票交易接口
热门文章
- 【Nutch2.2.1源代码分析之5】索引的基本流程
- java多线程中几个常用的方法
- 分布式事务在Sharding-Sphere中的实现
- 聚类分析与相关算法(Kmeans等)详解
- [大数据之Yarn]——资源调度浅学
- Struts2、Spring3、MyBatis3整合ExtJS,完成ColumnTree 【一】
- Hyper-V复制功能
- CentOS 6.X安装LAMP最高版本环境
- C#中new和override的区别
- asp.net 研发,测试,或现网....非本机环境采用附加进程的方式在本地调试