利用FutureTask和ExecutorService实现一个任务拆分成多个任务,实现性能提高
2016-04-17 15:00
330 查看
业务场景:本地服务开发的时候,本地有个H服务,H想要查询一个展示数据的列表,就远程调用了A服务,A服务需要远程调用B服务,拿到一个list,拿到List之后,需要循环这个list,然后对List中的每个值进行循环,调用C服务和D服务 获得真正需要的数据。遇到的问题:由于A服务拿到的List可能会比较大!!!估计在1000左右,然后如果单线程执行,需要循环这个list,然后针对list里的每一项,再去调用C和D服务,虽然单个调用比较快,但是因为是跨服务调用,循环1000次,会导致H服务这边远程调用超时,这种情况下造成查询不稳定。经常出现timeout目前的解决方案:把这个大List进行拆分,然后多线程并发操作,以提升性能,降低远程调用的耗时。期待反馈:希望大家看完后,能提出更有效的解决方案。示例代码如下:?
转自:http://my.oschina.net/91jason/blog/598332
相关文章推荐
- ECMAScript继承机制实现
- 第一集:机器学习的动机与应用
- mysql的DDL操作
- 循序渐进之Spring AOP(5) - 创建切面
- 第七周学习进度
- JAVA线程间的状态转换
- DG - dataguard trouble shooting的相关视图
- 液晶拼接控制器
- PHP之array_keys()获取数组键名
- 在Linux下信号量的semop操作的sembu结构体中sem_flag的设置值的含义
- hdu 5667 Sequence 矩阵快速幂
- 第12章--Java集合之Iterator接口的使用
- 【转载】Java的四种引用
- Java常用之String.valueOf、toString、(String)
- POJ 1088 滑雪(dp)
- Win10远程时,提示“您的凭证不工作”解决办法
- Spring 学习时遇到错误整理贴(会慢慢补充)
- null和undefined
- ffmpeg实现H.264视频解码-1
- AngularJS 学习笔记 -- 指令(Directive)