java 多线程 day16 CountDownLatch 倒计时计数器
2017-12-05 02:02
761 查看
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Thread1601_CountDownLatch { public static void main(String[] args) { ExecutorService service = Executors.newCachedThreadPool(); final CountDownLatch cdOrder = new CountDownLatch(1); //裁判吹口哨,开始跑 final CountDownLatch cdAnswer = new CountDownLatch(3); //裁判宣布结果 for(int i=0;i<3;i++){ Runnable runnable = new Runnable(){ public void run(){ try { System.out.println("线程" + Thread.currentThread().getName() + "正准备接受命令"); cdOrder.await(); System.out.println("线程" + Thread.currentThread().getName() + "已接受命令"); Thread.sleep((long)(Math.random()*10000)); System.out.println("线程" + Thread.currentThread().getName() + "回应命令处理结果"); cdAnswer.countDown(); } catch (Exception e) { e.printStackTrace(); } } }; service.execute(runnable); } try { Thread.sleep((long)(Math.random()*10000)); System.out.println("线程" + Thread.currentThread().getName() + "即将发布命令"); cdOrder.countDown(); System.out.println("线程" + Thread.currentThread().getName() + "已发送命令,正在等待结果"); cdAnswer.await(); System.out.println("线程" + Thread.currentThread().getName() + "已收到所有响应结果"); } catch (Exception e) { e.printStackTrace(); } service.shutdown(); } }
相关文章推荐
- Java多线程与并发库高级应用之倒计时计数器CountDownLatch
- Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger
- Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger
- JAVA对多线程的两个有用的辅助类(CountDownLatch和AtomicBoolean)
- Java多线程并发之CountDownLatch
- [Java并发]使用CountDownLatch和CyclicBarrier等待多线程完成
- Java多线程等待所有线程结束(CountDownLatch/CyclicBarrier)
- Java的concurrent包里面的CountDownLatch多线程然后必须等其它任务执行完毕
- Java多线程系列--“JUC锁”09之 CountDownLatch原理和示例
- Java线程计数器CyclicBarrier和CountDownLatch的使用
- java多线程之CountdownLatch简单应用
- Java5 多线程(六)--CountDownLatch 同步工具类
- Java多线程之CountDownLatch学习
- 多线程的同步器之倒计时门栓(CountDownLatch)的使用
- Android 价值千万java多线程同步 <五>CountDownLatch(计数器)和Semaphore(信号量)
- Java多线程之CountDownLatch同步器的使用(六)
- Java5 多线程(六)--CountDownLatch 同步工具类
- Java:多线程等待所有线程结束(CountDownLatch/CyclicBarrier) .
- Java多线程学习之 CountDownLatch 用法介绍
- Java多线程之同步工具类(CountDownLatch、CyclicBarrier、Semaphore)