future 多线程请求多个接口信息

本文探讨了在微服务架构下如何利用Future模式和多线程提高数据请求效率。通过并发发送请求,将原本串行的接口调用转换为并行操作,从而减少总耗时至最慢服务的响应时间。具体实现借助了Java的concurrent库中的FutureTask。
摘要由CSDN通过智能技术生成

在微服务调用中,一个接口需请求多个服务的数据,如使用顺序编程,耗时为多个微服务响应时间之和。为提高效率,使用多线程发出消息,耗时为最慢响应的接口请求时间。多线程获取时需使用异步记录,使用Future 模式。具体使用jdk concurrent FutureTask。

package com.lls.concurrent;



import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.*;

public class FutureTaskTest2 {


    public static void main(String[] args) throws ExecutionException, InterruptedException {

        List<FutureTask<String>> fts = new LinkedList<FutureTask<String>>();
        for(int i = 1; i < 10;i++){
           fts.add(new FutureTask<>(new RealData("data"+i,i*1000)));
        }

        long start = System.currentTimeMillis();

        ExecutorService executorService = Executors.newFixedThreadPool(10);
        fts.forEach((f)->executorService.execute(f));

        System.out.println("ready...");
        Thread.sleep(2000);
        System.out.println("use 2 s&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值