Java模拟并发操作进行压力测试代码

package com.example.mmd;

import java.net.URL;

import java.net.URLConnection;

import java.util.concurrent.CountDownLatch;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.Semaphore;

public class Demo {

        // 总的请求个数

        public static final int requestTotal =1000;

        // 同一时刻最大的并发线程的个数

        public static final int concurrentThreadNum =20;

        public static void main(String[] args)throws Exception {

                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 =connect();

                                            System.out.println("result:{}." + result);

                                            semaphore.release();

                                        }catch (InterruptedException e) {

                                             System.out.println("exception" + e);

                                        }catch (Exception e) {

                                            e.printStackTrace();

                                        }

                        countDownLatch.countDown();

                });

            }

            countDownLatch.await();

            executorService.shutdown();

            System.out.println("执行完成");

}

    public static String connect()throws Exception {

            //测试接口

            final String host ="更换自己的接口!";

            URL url =new URL(host);

            URLConnection urlConnection = url.openConnection();

            urlConnection.setDoInput(true);

            urlConnection.setDoOutput(true);

            urlConnection.connect();

            System.out.println(urlConnection.getInputStream());;

            return  urlConnection.getInputStream().toString();

    }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容