CountDownLatch并发测试

 public void threadTest() throws InterruptedException{
        //访问数
        int threadSize = 1000;
        //最大并发数量
        int poolSize = 100;
        CountDownLatch countDownLatch1 = new CountDownLatch(1);
        CountDownLatch countDownLatch2 = new CountDownLatch(threadSize);
        ExecutorService executorService = new ThreadPoolExecutor(poolSize, poolSize,
                10L, TimeUnit.SECONDS,
                new LinkedBlockingQueue<Runnable>(10000), Executors.defaultThreadFactory(),
                new ThreadPoolExecutor.AbortPolicy());
        //开始时间
        long beginTime = System.currentTimeMillis();
        boolean isBeginToRun = false;
        for (int i = 0; i < threadSize; i++) {
            //创建子线程并使其阻塞
            executorService.execute(()->{
                try {
                    System.out.println(Thread.currentThread().getName()+"---bigin");
                    //阻塞到countDownLatch1为0时在开始执行
                    countDownLatch1.await();
                    //需要执行的操作
//                    httpSend();
                    System.out.println(Thread.currentThread().getName()+"---END");

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }finally {
                    countDownLatch2.countDown();
                }
            });
            System.out.println("结束--"+i);

        }
        //使所有的子线程开始并发执行
        countDownLatch1.countDown();
        System.out.println("线程开始执行");
        //阻塞主线程
        countDownLatch2.await();
        //结束时间
        long endTime = System.currentTimeMillis();
        //执行花费时间
        System.out.println("thread size : "+threadSize+", use pool :"+(endTime-beginTime));
        executorService.shutdown();
    }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值