JobPlus知识库 IT 软件开发 文章
Future模式学习

概述

如果系统需要调用某个外部系统的接口获取数据结果,进行某些业务操作,但是对方的接口可能响应很慢,这个时候可以尝试使用Future并发模式。

future模式跟生产者-消费者模式不同,后者是无需理会对方系统接口如何处理的。具体可以参看生产者-消费者模式 。而future模式则合适处理那种需要依赖对方接口返回结果的情况。

例子

比如说,A系统需要调用B系统的getData(List<Long> idList) 方法,一次只能支持查询50个,也即是说,如果你有个150个id,得调用这个接口三次,假设150个id存储在List<Long> tempList = new ArrayList<>() 中,那么可以对tempList进行分页,然后串行的调用getData接口三次。关于如何对一个list进行分页,可以参考对ArrayList进行分页 。

但是这种办法是串行的调用,还是有些慢。可以利用Future模式来做到并行调用getData接口,最后调用Future接口中get方法,阻塞住线程,等待处理结果,并做结果汇总操作。虽然这种方式也是要调用getData接口三次,但是速度确比串行的要快。

关于使用JAVA中的Future和FutureTask的代码,网上一大把,这里就不详细列出了。


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
363人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序