Java使用多线程调用远程接口

白色玫瑰 程序猿

时间: 2023-07-11 阅读: 1 字数:1832

{}
前言:前段时间有个需求,需要循环调用多次中台接口查询数据,为了减少等待时间采用多线程的方式调用 不多bb,直接上测试代码 @Test public void testMultiThread() throws InterruptedException { ...

前言:前段时间有个需求,需要循环调用多次中台接口查询数据,为了减少等待时间采用多线程的方式调用

不多bb,直接上测试代码

   @Test
   public void testMultiThread() throws InterruptedException {
      int i = 5;
      System.out.println("=====多线程开始=====");
      // 创建闭锁对象抓住所有线程,构造器指定倒数次数
      CountDownLatch countDownLatch = new CountDownLatch(i);
      while (i > 0) {
         int finalI = i;
         // 启用多线程
         CompletableFuture.runAsync(() -> {
            System.out.println(finalI);
            // 线程执行结束则countDown,倒数一次
            countDownLatch.countDown();
         });
         i--;
      }
      // 等待所有线程都countDown,倒数完毕,结束线程
      countDownLatch.await();
      System.out.println("=====多线程结束=====");
   }

本次是使用CompletableFuture对象的runAsync()方法直接创建子线程。

而CountDownLatch 对象是用于阻塞主线程,如果没有的话,代码会在子线程还未执行结束时就开始执行下面的逻辑

原文地址:https://blog.csdn.net/im_roy/article/details/123230535?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168904453316800211527462%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168904453316800211527462&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-15-123230535-null-null.142^v88^koosearch_v1,239^v2^insert_chatgpt&utm_term=java%E4%BC%98%E5%8C%96

本文章网址:https://www.sjxi.cn/detil/acd49bb30a3149c6a4a47a9bab177d01

最新评论

当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复