package com.bjsxt.height.concurrent019; import java.util.concurrent.CountDownLatch; /** * CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。 * 比如有一个任务A, * 它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了 * */ public class UseCountDownLatch { public static void main(String[] args) { final CountDownLatch countDown = new CountDownLatch(2);//参数 表示几个countDown(); Thread t1 = new Thread(new Runnable() { @Override public void run() { try { System.out.println("进入线程t1" + "等待其他线程处理完成..."); countDown.await();//在这里堵塞,等待其他线程执行完后,才能往下执行 System.out.println("t1线程继续执行..."); } catch (InterruptedException e) { e.printStackTrace(); } } },"t1"); Thread t2 = new Thread(new Runnable() { @Override public void run() { try { System.out.println("t2线程进行初始化操作..."); Thread.sleep(3000); System.out.println("t2线程初始化完毕,通知t1线程继续..."); countDown.countDown();//执行完,通知 } catch (InterruptedException e) { e.printStackTrace(); } } }); Thread t3 = new Thread(new Runnable() { @Override public void run() { try { System.out.println("t3线程进行初始化操作..."); Thread.sleep(4000); System.out.println("t3线程初始化完毕,通知t1线程继续..."); countDown.countDown();//执行完,通知 } catch (InterruptedException e) { e.printStackTrace(); } } }); t1.start(); t2.start(); t3.start(); } }
相关推荐
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
本资源包含两个 pdf 文档,一本根据 Jakob Jenkov 最新博客 (http://tutorials.jenkov.com/java-util-concurrent/index.html) 整理的 java_util_concurrent_user_guide_en.pdf,一个中文翻译的 java_util_concurrent...
java.util.concurrent.CountDownLatch通过org.redisson.core.RTopic 实现分布式订阅/发布通过 org.redisson.core.RHyperLogLog 实现分布式HyperLogLog 线程安全支持 OSGi超过110个单元测试 标签:Redisson...
一、java.util.concurrent体系的主要大板块包含内容 二、Executors 三、Semaphor信号量 四、Exchanger线程交互 五、CyclicBarrier关卡模式 六、CountDownLatch计数器
import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ...
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
本资源包含两个 pdf 文档,一本根据 Jakob Jenkov 最新博客 (http://tutorials.jenkov.com/java-util-concurrent/index.html) 整理的 java_util_concurrent_user_guide_en.pdf,一个中文翻译的 java_util_concurrent...
Java JUC的使用1.volatile关键字-内存可见性2.原子变量-CAS算法3.ConcurrentHashMap锁分段机制4.CountDownLatch闭锁5.实现Callable接口6.Lock同步锁7.Condition控制线程通信8.线程按序交替9.ReadWriteLock读写锁10....
源码详解CountDownLatch CountDownLatch,是一种常见同步器。其实现依赖于AQS(可以参考抽象队列式同步器AQS...import java.util.concurrent.CountDownLatch; public class Main{ //初始化构造,赋值计数器值 public s
-Xms64M -Xmx512M -Xss200K -Xms64M:设置JVM初始内存为64M。 -Xmx512M:设置JVM大可用内存512M。... import java.util.concurrent.CountDownLatch; public class TestThread { public static void
Java并发编程基础主要包括以下几个核心方面: ...并发工具类:掌握Java并发包java.util.concurrent中提供的各种工具类,如CountDownLatch、CyclicBarrier、Semaphore等,它们简化了并发编程的复杂性。
具有java.util.concurrent。*构造的自定义实现 CountDownLatch 循环屏障 换货商 重入锁 读锁 信号 线程池 BlockingQueue-生产者消费者 具有一些集合类的自定义实现 有以下示例代码 易挥发的 僵局 java.util....
backport-util-concurrent-3.1.jar是一个Java库,它提供了一些并发工具类,用于简化多线程编程。这个库包含了许多实用的工具类,如`FutureTask`、`CountDownLatch`、`Semaphore`等,这些工具类可以帮助开发者更好地...
25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................
01-并发简史.avi 02-线程和进程.avi 03-创建线程的方式(1).avi 04-线程池.avi 05-forkjoin.avi 06-JVM的内存模型.avi ...12-java.util.concurrent包下的类.avi 13-ReadWriteLock.avi 14-countDownLatch.avi
CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashMap和BlockingQueue,它们都存在于java.util.concurrent包下。CountDownLatch这个类能够使一个线程...
25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................
位于java.util.concurrent包下,利用它可以实现类似计数器的功能,比如有一个任务A,它要等待其他几个任务执行完毕后才能执行,这时可以使用CountDownLatch来实现这个功能 构造器以及方法 构造器 只提供了一种...