九天猎人 发表于 2023-12-19 06:01:36

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

来源: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执行多任务计算

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
页: [1]
查看完整版本: 妙用 FutureTask + 线程池:轻松解决接口超时问题!