java模拟性能测试同时请求同一个接口71个并发请求,请求的结果需要三分钟才能响应打印出来每个请求的响应信息并把响应的报文返回

为了实现 Java 模拟性能测试同时发起 71 个并发请求,并且每个请求的响应需要三分钟才能返回,并将每个请求的响应信息打印出来并返回响应的报文,你可以使用 Java 的线程池来管理并发请求,使用 ExecutorServiceFuture 来控制每个请求的执行和等待响应,使用 Callable 来包装每个请求的逻辑。

以下是一个示例代码:

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

public class ConcurrentRequests {

    public static void main(String[] args) throws InterruptedException, ExecutionException {
        int concurrentCount = 71; // 并发请求数
        ExecutorService executorService = Executors.newFixedThreadPool(concurrentCount);
        List<Future<String>> futures = new ArrayList<>();

        // 发起并发请求
        for (int i = 0; i < concurrentCount; i++) {
            Callable<String> task = new RequestTask();
            Future<String> future = executorService.submit(task);
            futures.add(future);
        }

        // 等待所有请求完成并获取响应
        for (Future<String> future : futures) {
            String response = future.get(); // 获取响应,会阻塞直到响应返回
            System.out.println("Response: " + response);
        }

        executorService.shutdown(); // 关闭线程池
    }

    static class RequestTask implements Callable<String> {
        @Override
        public String call() throws Exception {
            // 模拟请求逻辑
            Thread.sleep(180_000); // 请求响应时间为三分钟
            return "Response for request: " + Thread.currentThread().getName();
        }
    }
}

在这个示例中,我们使用了 ExecutorService 创建了一个固定大小的线程池来管理并发请求。然后,我们创建了 RequestTask 类来包装每个请求的逻辑,并实现了 Callable 接口。在 call() 方法中,我们模拟了每个请求的逻辑,并返回了响应信息。最后,我们使用 Future 来获取每个请求的响应,future.get() 方法会阻塞直到响应返回。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值