假设我一直在使用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类相关推荐

  1. python2中可以使用print()函数吗_在Python2.x中使用print()(函数版本)

    我理解语句和表达式之间的区别,我理解Python3将print()转换为函数. 但是我在各种Python2.x解释器上运行了一个用括号括起来的print()语句,它运行完美,我甚至不需要导入任何模块. ...

  2. python 运行r语言_如何在R中运行Python

    python 运行r语言 尽管我很喜欢R,但很显然Python还是一种很棒的语言-既适用于数据科学又适用于通用计算. R用户想要在Python中做一些事情可能有充分的理由. 也许这是一个很棒的库,还没 ...

  3. python领域的名人_计算任意视频中各人物的出镜时间(附Python实现)

    作者:Pulkit Sharma 编译:Bing 编者按:本文作者Pulkit Sharma分享了一篇有趣的项目,以<猫和老鼠>为例,计算任意视频中汤姆猫和杰瑞鼠的出镜时长.这一模型也可以 ...

  4. python存储大量数据_如何在文件中密集地存储大量数据?

    如果你期望存储一个均匀分布的数字,那么看看疯狂的物理学家的答案.但是,如果您预期存储的大部分是小数字,但需要能够存储一些大的数字,那么这些方案可能也很有用.在 如果只需要考虑长度为255字节或更少字节 ...

  5. python运行按钮灰色_关于Android Studio中Run按钮是灰色的解决

    今天导入一个别人的项目,在导入之前是老方法,覆盖了三个关键文件之后(.gradle文件夹的内容版本若与本地不一,也应删掉),重启AS: 然而嗯,运行按钮居然灰色.. 查了一下论坛,额,然后我这里是只做 ...

  6. 范数在机器学习中的作用_设计在机器学习中的作用

    范数在机器学习中的作用 Today, machine learning (ML) is a component of practically all new software products. Fo ...

  7. 统计信息在数据库中的作用_统计在行业中的作用

    统计信息在数据库中的作用 数据科学与机器学习 (DATA SCIENCE AND MACHINE LEARNING) Statistics are everywhere, and most indus ...

  8. 符号在excel中的引用_如何在Excel中添加项目符号

    &符号在excel中的引用 There's no built-in feature for bullets in Excel, like there is in a Word document ...

  9. python 倒叙 数组_打基础一定要吃透这12类 Python 内置函数

    内置函数就是python给你提供的, 拿来直接用的函数,比如print.,input等.截止到python版本3.6.2 python一共提供了68个内置函数,我将它们分成 12 类,方便你学习. s ...

最新文章

  1. Equalizing Two Strings 冒泡排序or树状数组
  2. ARM 之九 Cortex-M/R 内核启动过程 / 程序启动流程(基于ARMCC、Keil)
  3. android mvvm框架搭建_轻松搭建基于JetPack组件的MVVM框架
  4. 使用SQLite3存储和读取数据
  5. 小米暑期实习在线笔试2015-04-25
  6. 华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...
  7. 内容分发网络(CDN) 是什么
  8. 阿里高级技术专家方法论:如何写复杂业务代码?
  9. 图解java_图解 Java 中的数据结构及原理!
  10. 检查oracle用户默认密码的账户
  11. 数据仓库与数据挖掘(二)
  12. 社会资源全整合 视频监控全覆盖
  13. websockets 断开问题解决方案
  14. 如何在手机浏览器中实现条形码/QR码扫描
  15. 双 JK 触发器 74LS112 逻辑功能。真值表_C08. D触发器
  16. slitaz linux 包管理器,SliTaz
  17. 2021年新年元旦,新年开篇两首毛泽东诗词——沁园春:恰同学少年,风华正茂。书生意气,挥斥方遒……...
  18. ARP报文的存入条件和回复条件
  19. 2020软科中国计算机学科排名,【智库数据】基于2020软科中国最好学科排名的学科动态发展跟踪...
  20. 如何获取股票交易接口

热门文章

  1. 【Nutch2.2.1源代码分析之5】索引的基本流程
  2. java多线程中几个常用的方法
  3. 分布式事务在Sharding-Sphere中的实现
  4. 聚类分析与相关算法(Kmeans等)详解
  5. [大数据之Yarn]——资源调度浅学
  6. Struts2、Spring3、MyBatis3整合ExtJS,完成ColumnTree 【一】
  7. Hyper-V复制功能
  8. CentOS 6.X安装LAMP最高版本环境
  9. C#中new和override的区别
  10. asp.net 研发,测试,或现网....非本机环境采用附加进程的方式在本地调试