Java多线程API调用并接受处理结果

本文介绍了如何在Java中使用多线程异步调用多个API,以提高请求效率。通过创建线程池并发执行请求,然后组合所有返回结果。推荐使用Hutool工具库,并提醒开发者遵循阿里巴巴编程规范,避免直接使用Executors.newFixedThreadPool,以防止潜在问题。
摘要由CSDN通过智能技术生成

最近一直学习多线程知识苦于没有机会运用到实际项目中,不过今天接到一个需求:请求发送多个第三方api请求,组合这些请求的返回结果返回给前端调用。如果说写for循环,单个请求结束后再继续调用下一个请求(自己想一想都蠢)。实在是体验效果不佳,需要优化api请求查询时间。
这里就能采用多线程异步请求多个Api,拿到所有结果后组合返回即可。话不多说,show code!

    @Test
    public void testThread2() {
   
        // 用来计算请求时间哒
        LocalDateTime beginTime = LocalDateTime.now();
        // ExecutorService fixPool = Executors.newFixedThreadPool(8);
        // 使用线程池而不是直接创建线程,这是因为创建线程代价很高,线程池可以有效地利用有限的线程来启动任务。
        // 手动创建线程池
        ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
                .setNameFormat("video-pool-%d").build();
        ExecutorService fixPool = new ThreadPoolExecutor(8, 10,
                0L, TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());

        List<String> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值