java多线程:13、CountDownLatch同步辅助类【计数器】
来源:互联网 发布:腾讯抄袭 知乎 编辑:程序博客网 时间:2024/06/05 22:52
使用CountDownLatch计数器模拟赛跑比赛
import java.util.Random;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** *模拟赛跑比赛 *要求: *1、裁判等待队员准备; *2、裁判发起起跑通知; *3、裁判等待各队员到达终点 */public class ThreadTest2 { public static void main(String[] args) { //出发倒计时 CountDownLatch cdl1=new CountDownLatch(1),//裁判起跑通知 cdl2=new CountDownLatch(3),//准备完毕通知裁判 cdl3=new CountDownLatch(3);//裁判接收到结束通知 ExecutorService threadPool=Executors.newCachedThreadPool(); for(int i=0;i<3;i++){ threadPool.execute(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub System.out.println("队员"+Thread.currentThread().getName()+"准备完毕"); cdl2.countDown(); try { cdl1.await(); System.out.println("队员"+Thread.currentThread().getName()+"出发"); Thread.sleep(new Random().nextInt(5)*1000); System.out.println("队员"+Thread.currentThread().getName()+"到达终点"); cdl3.countDown(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } System.out.println("裁判等待所有队员准备完毕"); try { cdl2.await(); Thread.sleep(new Random().nextInt(3)*1000); System.out.println("开始"); cdl1.countDown(); System.out.println("裁判等待所有队员结束"); cdl3.await(); System.out.println("GOOD GAME!"); threadPool.shutdown(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
0 0
- java多线程:13、CountDownLatch同步辅助类【计数器】
- Java多线程--同步计数器CountDownLatch
- java 多线程同步辅助类(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)
- java多线程辅助类CountDownLatch
- 多线程同步辅助类——CountDownLatch
- CountDownLatch 多线程同步辅助类用法
- java CountDownLatch 同步计数器
- CountDownLatch同步辅助类
- CountDownLatch -- 同步辅助类
- 同步辅助类 java.util.concurrent.CountDownLatch
- CountDownLatch--线程同步辅助类
- java多线程 栅栏(CyclicBarrier) 和 多线程辅助类 CountDownLatch
- Java并发编程-同步辅助类之CountDownLatch
- java线程同步辅助类的使用CountDownLatch
- 《java并发编程实战》:线程同步辅助类之CountDownLatch
- Java并发编程-同步辅助类之CountDownLatch
- java多线程Thread-线程调度类CountDownLatch计数器
- CountDownLatch 类是一个 同步计数器
- Flume+HDFS+Kafka+Hive实例搭建
- java琐碎知识点410
- Thinkpad E40 F1-12功能键失效
- spring 中 Spring-data-redis的配置与使用
- 图像压缩
- java多线程:13、CountDownLatch同步辅助类【计数器】
- 开发遇到的相对路径和绝对路径问题
- metlab 6
- 【bug日常】struts报错: There is no Action mapped for namespace [/] and action name [login] associated ...
- JSONObject json = JSONObject.fromObject(map); 执行出现异常
- Caused by: com.opensymphony.xwork2.config.ConfigurationException: Parent package is not defined: Str
- self.view.size与[UIScreen mainScreen].bounds.size区别及引起的问题
- iOS 定位权限提示框一闪而过
- 图像压缩编码