使用 CountDownLatch 模拟1000的并发

packagecom.zzf.concurrence.cdtest;

importjava.util.concurrent.CountDownLatch;

publicclassCountdownLatchTest {

privatestaticCountDownLatchcd=newCountDownLatch(1000);

private static final int CONCURRENCE_COUNT = 1000 + 1;

publicstaticvoidmain(String[]args) {

// 一千个线程,同时怼一个方法

for(inti= 0;i

newThread(newSendTask()).start();

cd.countDown();

}

longcurrentTimeMillis= System.currentTimeMillis();

try{

cd.countDown();

cd.await();

}catch(InterruptedExceptione) {

//TODOAuto-generated catch block

e.printStackTrace();

}

System.out.println("当前用时:"+ (System.currentTimeMillis() -currentTimeMillis));

}

private static class SendTask implements Runnable {

@Override

publicvoidrun() {

try{

cd.await();

}catch(InterruptedExceptione) {

e.printStackTrace();

}

sendsms();

}

}

private static void sendsms() {

// System.out.println("信息发送成功"+System.currentTimeMillis());

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 并发包 java.util.concurrent从jdk1.5开始新加入的一个包,致力于解决并发编程的线程安全问题...
    Java高级架构狮阅读 1,430评论 2 30
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,877评论 18 399
  • 自学入坑快两年了,这可能是我坚持最久的一件事之一吧,喜欢画画,就是一旦开始之后就会忘记很多事情,在自己的世界里
    亲爱的盛朵朵阅读 133评论 0 0
  • 能够不费力地生活,是一件好事。 我说的不费力不是指不付出辛苦和劳动。而是指,故意不按自己喜欢的方式。有话不说,有想...
    生命的自由阅读 172评论 0 0
  • //一般把放大镜放在最顶部的位置。这样设置放大镜 、- (NSInteger) tableView:(UITabl...
    TimberTang阅读 945评论 0 0