并发编程-并行任务执行框架

 

 

7042eb54f00e4d32962d7048cbcc3c77.png

4b14a35115a64c3194aa1f52174ccf5f.png

屏蔽多线程实现的细节,让框架的使用者,感受不到框架内部在使用多线程

 

框架流程图

cc23a668e26c4af2ac656b41d168dc4d.png

 

6bee1210523a4c919efccde163b9c744.png

 

 

总体思路

 

内部持有一个线程池,给出一个ItemProcessor接口,让客户实现每一个元素的处理逻辑,客户自己决定元素处理成什么样算成功,什么样算失败,什么样抛出异常

框架内部,则把出一个ItemProcessor包装成一个Runnable

客户端代码,通过for循环不断的往框架内put ItemProcessor,框架内部则将它们包装成一个个Runnable,并丢入线程池中执行

 

监控板块

由于需要对任务的执行进度,执行情况进行管理,实时的监控,所以,需要对每一组item用一个统一的jobName进行管理

使用一个统一的JobContext上下文,管理每个job的执行情况,每个job内管理着客户端提交进来的item list

线程池中的线程,执行完一个item时,就需要修改一下JobContext上下文的状态,比如已处理的item数加一等等

 

反正,这个并行任务执行框架的核心逻辑,就是把每个item都拆散投入到了线程池的不同的线程中了,而不是分片的思想,可能10个或者100个item作为一个分片,进去一个线程

 

应用场景

适用于批量处理多个item,并且每个item就是一个不可分割的整体,每个item不会再拆分成多个步骤step的场景

 

 

视频链接:

2018.05.27-8a、实战项目-并发任务执行框架(1)_哔哩哔哩_bilibili

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值