`
chenhua_1984
  • 浏览: 1232948 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

利用生产者消费者模式实现串行的任务并行化

 
阅读更多

      

     试想,一个省有100个处理节点需要监控,全国加起来有上1000,如果我们需要对这些节点进行监控,或则向他们发送处理莫个任务的指令,或者中断,或者定时执行,立即执行 需要怎么处理?

     我们知道,如果我们直接这样做,指挥者说你去做任务A,当你还没结束时,指挥者又说你去做任务B,或者说任务C需要定时执行,这样的话,任务的执行者将会非常的忙碌,苦不堪言。

 

通过生产者与消费者模式,可以让程序更加的灵活,指挥者有一个任务,那么这个时候只需要将任务发布出去,任务的执行者有多个,哪个空闲哪个就去执行任务,还可以设定专用的任务执行者执行特殊的任务。

利用ActiveMQ的队列,可以实现这一点

 

 首先把任务归类,比如立即执行的,定时执行的,执行一次的,需要中断的,在ActiveMq里声明多个队列,一个队列负责存放一类任务,这样一来,上游通过程序向MQ定时发送任务到队列里,下游,这个时候可以采用多线程,或者多进程的方式来获取任务进行处理,同时,如果一台机器的处理能力不够,那么可以增加机器,复制做个进程来处理,这样一来,就姐姐了性能的问题

 

 

 

   

 

分享到:
评论

相关推荐

    C#并行编程高级教程:精通.NET 4 Parallel Extensions中文(第一部分)

    4.1.3 理解并行的生产者-消费者模式 4.1.4 ConcurrentStack 4.1.5 将使用数组和不安全集合的代码转换为使用并发集合的代码 4.1.6 ConcurrentBag 4.1.7 IProducerConsumerCollection 4.1.8 BlockingCollection 4.1.9 ...

    C#并行编程高级教程:精通.NET 4 Parallel Extensions中文(第2部分)

    4.1.3 理解并行的生产者-消费者模式 4.1.4 ConcurrentStack 4.1.5 将使用数组和不安全集合的代码转换为使用并发集合的代码 4.1.6 ConcurrentBag 4.1.7 IProducerConsumerCollection 4.1.8 BlockingCollection ...

    C#并行编程高级教程:精通.NET 4 Parallel Extensions中文(第3部分)

    4.1.3 理解并行的生产者-消费者模式 4.1.4 ConcurrentStack 4.1.5 将使用数组和不安全集合的代码转换为使用并发集合的代码 4.1.6 ConcurrentBag 4.1.7 IProducerConsumerCollection 4.1.8 BlockingCollection ...

    Java并发编程实战

    5.3 阻塞队列和生产者-消费者模式 5.3.1 示例:桌面搜索 5.3.2 串行线程封闭 5.3.3 双端队列与工作密取 5.4 阻塞方法与中断方法 5.5 同步工具类 5.5.1 闭锁 5.5.2 FutureTask 5.5.3 信号量 5.5.4 栅栏 5.6...

    Java 并发编程实战

    5.3 阻塞队列和生产者-消费者模式 5.3.1 示例:桌面搜索 5.3.2 串行线程封闭 5.3.3 双端队列与工作密取 5.4 阻塞方法与中断方法 5.5 同步工具类 5.5.1 闭锁 5.5.2 FutureTask 5.5.3 信号量 5.5.4 栅栏 5.6...

    并行计算导论(原书第2版).[美]Ananth Grama(带详细书签).pdf

    3.6.5 流水线模型或生产者-消费者模型 3.6.6 混合模型 3.7 书目评注 习题 第4章 基本通信操作 4.1 一对多广播以及多对一归约 4.1.1 环或线性阵列 4.1.2 格网 4.1.3 超立方体 4.1.4 平衡二叉树 4.1.5 算法...

    magnus:数据流转系统

    最简单的方式可能是流按照顺序处理生产者生产的数据,实现一些简单的分配规则例如:消费者轮播,广播,带权重的随机堆积等,以及重试机制,可以理解为消费者消费是串行的逻辑。还需要考虑如何实现多消费者并行消费,...

    RabbitMq

    消息队列解决了什么问题 异步处理 1.串行方式 2.并行方式 3.异步处理 应用结耦 4. 流量削峰 ...routing 路由选择 通配符模式 ...队列的持久化和非持久化 ...竞争消费者模式:一个消息生产者,一个交换

    Java并发编程(学习笔记).xmind

    生产者-消费者模式 中断的处理策略 传递InterruptedException 恢复中断,让更高层的代码处理 PriorityQueue(非并发) ConcurrentSkipListMap 替代同步的SortedMap ...

    智能工厂建设的途径.doc

    生产过程中,操作工与刀具、物料等生产准备人员本来就是并行协同的关系,如果 一直延续以前串行的工作模式,出现"操作者很忙,机床很闲"的局面是在所难免的,单 个工人身上已经很难挖掘潜力了,必须从生产流程、...

    windows驱动开发技术详解-part2

    这是书的光盘。共分为两个部分,这是第一部分。 本书由浅入深、循序渐进地... 本章总结了在内核模式下的四种等待方法,读者可以利用这些方法灵活地用在自己的驱动程序中。最 后本章还介绍了如何对IRP的超时情况进行...

    Windows驱动开发技术详解的光盘-part1

     本章总结了在内核模式下的四种等待方法,读者可以利用这些方法灵活地用在自己的驱动程序中。最后本章还介绍了如何对IRP的超时情况进行处理。  10.1 定时器实现方式一  10.1.1 I/O定时器  10.1.2 示例代码  ...

    单片机液晶显示“万年历”-单片机课程设计报告.pdf

    设计任务 1、用字符型液晶显示模块LCD1602显示万年历的日期/时间等,如下图 所示(仅供参考,可个性化差异设计,如显示学号等): 2012/05/01 DHY 16:47:58 123789 2、单片机与实时时钟芯片DS1302之间通过SPI接口...

    基于51单片机的液晶显示屏控制系统设计毕业设计.doc

    将液晶显示模块接口与单片机系统板中的某个并行I/O接口连接,计算机通过对该I/ O接口的操作间接的实现对模块的控制。 2 系统设计方案 此LCD液晶显示控制系统设计的关键是要实现LCD的显示控制。应该先从显示方式的确 ...

    服务器:将swoole服务和功能对象抽象化,带来全新的编程体验让代码清晰有条理的类库

    里有成千上万个“消息模型”,每个都有一个消费者专门处理数据然后把处理结果返回给生产者,这样的一个消息消耗应该是比较容易理解的,如下图一样的数据在并行被处理,它既是并发的又保证了串行数据处理的顺序。...

    基于51单片机的设计.doc

    摘要: 随着经济的发展和人民生活水平的提高人们对财产安全的要求也越来越高,报警 器在人民生活中发挥了越来越重要的作用,单片机作为一种可编程嵌入式微机 ,可以利用其通过软件实现设定的功能,该设计就是利用...

    基于51单片机的万年历设计.doc

    第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业 测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机...

    基于AT89S52 单片的频率计

    号为定时/ 计数器的计数源,利用定时器实现计数闸门。频率计的工作过程为: 首先定时/计数器T0 的计数寄存器设置一定的值,运行控制位TR0 置1,启动定 时/ 计数器0;利用定时器0 来控制1S 的定时,同时定时/计数器T1 ...

    2020年春【中石油】计算机测控技术第一阶段在线作业(标准).doc

    A、PC总线 B、外部总线 C、串行总线 D、并行总线 正确答案:B 第6题,6.(2.5分)要求8251工作在异步方式,波特率因子是16,数据位7位,奇校验, 1位停止位,则8251工作方式控制字是 A、11001101B B、01001111B C、...

Global site tag (gtag.js) - Google Analytics