妙用 FutureTask + 线程池:轻松解决接口超时问题!

九天猎人  金牌会员 | 2023-12-19 06:01:36 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 891|帖子 891|积分 2673

来源:blog.csdn.net/qq_44384533/article/details/112324224
之前红包权益领取查询的接口超时了,因为有用户订购的权益有点多
解决方案

用线程池+ FutureTask将1个查询拆分成多个小查询 选择FutureTask是因为它具有仅执行1次run()方法的特性(即使有多次调用也只执行1次),避免了重复查询的可能。而且多任务异步执行也能提高接口响应速度。
本文主要讲的是线程池搭配FutureTask异步执行的例子。
推荐一个开源免费的 Spring Boot 实战项目:
https://github.com/javastacks/spring-boot-best-practice
线程池 + FutureTask执行多任务计算

[code]public class Test { //线程池最好作为全局变量, 若作为局部变量记得用完后shutdown() ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("thread-start-runner-%d").build(); ExecutorService taskExe= new ThreadPoolExecutor(10,20,800L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue(100),namedThreadFactory);  int count=0; @Test public void test(String[] args) {    //任务列表  List taskList=new ArrayList();  for(int i=0;i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表