从文档:加入使用队列的进程请记住,将项目放入队列的进程将在终止之前等待,直到所有缓冲的项目由“feeder”线程提供给底层管道 . (子进程可以调用队列的Queue.cancel_join_thread方法来避免这种行为 . )这意味着无论何时使用队列,您都需要确保在进程之前最终删除所有已放入队列的项目加入了 . 否则,您无法确定已将项目放入队列的进程将终止 . 还要记住,非守护进程会自动加入 .

当我解读时,一个进程,这里是p2 = jobHandler,不应该在将项放入队列后立即退出,以避免排队的数据松散 . 找不到任何句子的解释否则你不能......已经把队列上的物品都终止了 .

除此之外,我想评论你的代码 . 我认识到这个代码已经简化了 .

避免将启动时执行的代码放在 if __name__ == '__main__': 之外

从文档:安全导入主模块一个应该使用if name =='main'来保护程序的“入口点”:

job_queue = mp.Queue() error_queue = mp.Queue() for i in range(10): job_queue.put(i)

在def job_handler / error_handler中

.close()

except: ... job_queue.close()

这是错误的,因为job_handler进程永远不会将消息放在此队列中 .

这也适用于进程error_handler和error_queue.close()

从文档:指示当前进程不再向此队列放置任何数据 . 一旦将所有缓冲数据刷新到管道,后台线程将退出 . 当队列被垃圾收集时,会自动调用此方法 .

_foun_handler / error_handler中的

.join_thread()

这没用,因为job_handler进程不会在此队列上放置消息 . 因此 .join_thread 确实 nothing . 对于进程error_handler也是如此 .

except: ... job_queue.join_thread()

# t2

def error_handler(error_queue): ... error_queue.close() error_queue.join_thread()

使用 Exit(1) 而不是 return 1

无法使用 p2.exitcode. 捕获错误代码'1'

将一个过程想象成一个自己的程序而不是一个函数 .

return 1

请尝试以下方法:

# t1

error_queue.put('Error')

error_queue.close()

# Give the error_handler a chance to get a timeslice

time.sleep(0.2)

error_queue.join_thread()

#job_queue.close()

#job_queue.join_thread()

# t2

exit(1)

Tested with Python:3.4.2 and Python:2.7.9

java 多个队列处理_加入多处理队列需要很长时间相关推荐

  1. JAVA进入公司试用期多久_一般企业的试用期为多长时间

    展开全部 <中华人民共和国劳动合同法>第十九条 劳动合同期限62616964757a686964616fe58685e5aeb931333366303165三个月以上不满一年的,试用期不得 ...

  2. python消息队列中间件_常见的消息队列中间件介绍

    题目 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka.ActiveMQ.RabbitMQ.RocketMQ 都有什么区别,以及适合哪些场景? 什么是消息队列 在正式介绍和对比Kafka. ...

  3. 开花算法_数据科学即将开花,但其根源已经存在了很长时间

    开花算法 "The future of data analysis can involve great progress, the overcoming of real difficulti ...

  4. java阻塞队列作用_简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用...

    简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用 Condition:可以理解成一把锁的一个钥匙,它既可以解锁(通知放行),又可以加锁(阻塞) n ...

  5. 用户请求队列化_爬虫架构消息队列应用场景及ActiveMQ、RabbitMQ、RocketMQKafka

    前言:在之前的业务中,使用了Kafka和RabbitMQ两种消息队列,这篇文章来做一个总结. 消息队列中间件是分布式系统中重要的组件,主要实现异步消息,应用解耦,流量削峰及消息通讯等功能. 下面举例说 ...

  6. win server 缓冲区队列不足_有赞延迟队列设计

    延迟队列,顾名思义它是一种带有延迟功能的消息队列. 那么,是在什么场景下我才需要这样的队列呢? 背景 我们先看看以下业务场景: 当订单一直处于未支付状态时,如何及时的关闭订单,并退还库存? 如何定期检 ...

  7. 数据结构队列代码_代码简介:队列数据结构如何工作

    数据结构队列代码 Here are three stories we published this week that are worth your time: 这是我们本周发布的三个值得您关注的故事 ...

  8. centos java 时间差8个小时_解决Centos7本机时间与实际时间相差8小时

    GPS系统中有两种时间区分,UTC就0时区的时间,CTS为本地时间,如北京为早上八点(东八区),UTC时间比北京时晚八小时; CTS:China Standard Time,UTC+8:00 中国沿海 ...

  9. avrorecord.java,失败,但发生异常java.io.IOException:org.apache.avro.AvroTypeException:发现的很长,期望在配置单元中实现联合...

    需要帮忙!!! 我正在使用flume将Twitter提要流式传输到hdfs中,并将其加载hive进行分析. 步骤如下: 我已经avro schema在avsc文件中描述了并将其放入hadoop: {& ...

最新文章

  1. 网格的铺设问题——骨牌
  2. linux标准库的问题
  3. shell test和find命令实例解析
  4. 在Netbeans下配置Tomcat manager用户名与密码
  5. MySQL 高级repeat循环
  6. 软件设计师 - 算法思想
  7. 通俗易懂地讲解 __block 变量
  8. java不规则数组杨辉,JAVASE课程 第一章 第三讲程序控制与数组
  9. sqlserver查询最耗时的sql语句和执行过的sql语句
  10. 数学建模系列--灰色关联分析
  11. 【转载】蜗牛星际矿渣黑群晖安装折腾路以及指引
  12. 数据挖掘与商业智能理论
  13. CME ERROR错误代码列表
  14. C++的protected
  15. 基于爬虫毕业设计题目
  16. 关于kali Linux缺少pyrit或者pyrit无法定位的问题
  17. Java银联卡支付小系统
  18. 安卓机适合用的手机浏览器,可下载视频可锁屏
  19. 骚操作!代码写情诗 | 程序员有话说
  20. 揭秘OPhone白手起家前后:一个系统的诞生

热门文章

  1. AI 实战:GPS实景识别网络项目(源码共享)
  2. AI 重塑 IT 的 5 种方式
  3. JavaScript 简史 1
  4. Zoom 是如何击败科技巨头的?
  5. 中国搜索 20 年:易守难攻、刚需不减!
  6. 2025 年全球数据量高达175ZB,开发者如何挑战数据洪流?
  7. 4种最常问的编码算法面试问题
  8. 如何从技术上“绞杀”盗链者?
  9. Venture Sprint创新冲刺:源自硅谷设计 感知创新力量
  10. @程序员,想要基于 Python 3.4 玩爬虫该看些什么?