java CountDownLatch 模拟多并发线程简单例子
2015-03-02 14:12
309 查看
CountDownLatch作用
CountDownLatch,是一个倒计数的锁存器,当计数减至0时触发特定的事件。
构造方法参数指定了计数的次数
countDown方法,当前线程调用此方法,则计数减一
awaint方法,调用此方法会一直阻塞当前线程,直到计时器的值为0
测试线程类
测试主函数类
CountDownLatch,是一个倒计数的锁存器,当计数减至0时触发特定的事件。
构造方法参数指定了计数的次数
countDown方法,当前线程调用此方法,则计数减一
awaint方法,调用此方法会一直阻塞当前线程,直到计时器的值为0
测试线程类
import java.util.concurrent.CountDownLatch; public class MyTestThread implements Runnable { private final CountDownLatch startSignal; public MyTestThread(CountDownLatch startSignal) { super(); this.startSignal = startSignal; } @Override public void run() { try { startSignal.await(); //一直阻塞当前线程,直到计时器的值为0 } catch (InterruptedException e) { e.printStackTrace(); } doWork(); } private void doWork() { // TODO Auto-generated method stub System.out.println("do work"); } }
测试主函数类
public class MyTest { public static void main(String[] args) { CountDownLatch start=new CountDownLatch(1);// 初始化计数器为 一 for(int i=0;i<16;i++){//模擬16个线程 MyTestThread tt =new MyTestThread(start); Thread t = new Thread(tt); t.start(); } start.countDown();//计数器減一 所有线程释放 同时跑 } }
相关文章推荐
- java并发(一) CountDownLatch (在多个线程都结束后再去执行某个任务)
- Java线程(十一):CountDownLatch-线程并发的发令枪
- java CountDownLatch 模拟用户并发请求
- [Java] CountDownLatch 模拟高并发
- Java线程(十一):CountDownLatch-线程并发的发令枪
- Java_并发线程_Semaphore、CountDownLatch、CyclicBarrier、Exchanger
- Java_并发线程_Semaphore、CountDownLatch、CyclicBarrier、Exchanger
- Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭
- Java多线程与并发库高级应用之倒计时计数器CountDownLatch
- Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭
- Java线程计数器CyclicBarrier和CountDownLatch的使用
- Java线程知识__其他几种线程同步的工具类的使用(CyclicBarrier,CountDownLatch,Exchanger)
- java并发之CountDownLatch
- java线程之CountDownLatch
- java线程的简单例子(Thread and runnable)
- Java线程之CountDownLatch
- java线程同步之CountDownLatch
- Java:多线程等待所有线程结束(CountDownLatch/CyclicBarrier) .
- [沧海拾遗]java并发之CountDownLatch、Semaphore和CyclicBarrier
- Java:多线程等待所有线程结束(CountDownLatch/CyclicBarrier)