本文主要是介绍Java代码模拟并发请求对接口进行压测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
案例:编写一段代码,模拟并发请求为20,且总的请求数为1000,当1000个请求完成之后,打印“请求完成”。
实现代码:
/*** 目标:编写一段代码,模拟并发请求为20,且总的请求数为1000,当1000个请求完成后,打印“请求完成”*/
@Slf4j
public class TestConcurrentRequest {// 总的请求个数public static final int requestTotal = 1000;// 同一时刻最大的并发线程的个数public static final int concurrentThreadNum = 20;public static void main(String[] args) throws InterruptedException {ExecutorService executorService = Executors.newCachedThreadPool();CountDownLatch countDownLatch = new CountDownLatch(requestTotal);Semaphore semaphore = new Semaphore(concurrentThreadNum);for (int i = 0; i< requestTotal; i++) {executorService.execute(()->{try {semaphore.acquire();String result = testRequestUri();log.info("result:{}.", result);semaphore.release();} catch (InterruptedException e) {log.error("exception", e);}countDownLatch.countDown();});}countDownLatch.await();executorService.shutdown();log.info("请求完成");}private static String testRequestUri() {return HttpClientUtil.get("http://localhost:8080/test");}
}
注意:上述代码中,
这篇关于Java代码模拟并发请求对接口进行压测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!