`
endual
  • 浏览: 3558320 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CountDownLatch方法 同步计时器

    博客分类:
  • java
 
阅读更多
package endual;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 犹如倒计时的计数器,调用countDownLatch对象的countDown方法就将计数器
 * 减去1,当计数器到到0的时候,那么所有等待多种等待的开始执行。这直接通过代码来实现
 * CountDownLathchd的作用,这样就更可以理解这个意思了的
 * @author endual
 *
 */
public class CountDownLatchApp {

	public static void main(String[] args) {
		
		ExecutorService es = Executors.newCachedThreadPool() ; //创建了线程池,要多少线程就有多少线程的
		final CountDownLatch cdl = new CountDownLatch(10) ;
		
		for (int i=0; i < 10; i++) {
			
			Runnable runn = new Runnable() {

				public void run() {

					cdl.countDown() ;//每次调用减去1
					try {
						cdl.await() ; //一定要用这个表示等待的,要不就没有用了,这个还比是起跑线了
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					System.out.println(Thread.currentThread().getName());
					
				}
				
				
			};
			System.out.println("x" + cdl.getCount() ) ;
			
			es.execute(runn) ;
			
			
		}
		
		
	}
}

 

 

注意要用await()方法表示的等待哦,要不是没用的。

分享到:
评论

相关推荐

    JAVA CountDownLatch(倒计时计数器)用法实例

    它是一种倒计时器,使用计数来控制线程的执行顺序。本文将详细介绍 CountDownLatch 的用法实例,通过示例代码来讲解其使用方法。 CountDownLatch 的主要方法 CountDownLatch 有两个主要方法:countDown() 和 await...

    Java中的CountDownLatch类最全讲义

    目录: 简介 1.1 并发编程与线程同步 1.2 CountDownLatch概述 CountDownLatch的基本用法 ...5.1 倒计时计时器 5.2 同时开始任务 5.3 等待多个资源就绪 CountDownLatch与CyclicBarrier的对比 最佳实践与注意事项

    27 倒数计时开始,三、二、一—CountDownLatch详解.pdf

    CountDownLatch 的实现基于 `AbstractQueuedSynchronizer`(AQS)框架,这是一个内置的锁和同步器框架。AQS 内部维护了一个整型状态变量 `state`,在 CountDownLatch 中,`state` 代表计数值。`countDown()` 方法...

    CountDownLatch、Semaphore等4大并发工具类详解

    应用场景:倒数计时器,例如火箭发射前检查设备、仪器的场景。 Semaphore Semaphore 是一个限流工具类,用于控制访问某个资源的线程数量。它可以限制某个资源的并发访问数量,防止资源被过度访问。Semaphore 提供...

    Java多线程编程之CountDownLatch同步工具使用实例

    这就像一个倒计时器,只有当倒计时结束(计数器为0)时,所有等待的线程才能通过这个“门”。 在上述代码示例中,`CountDownLatchTest`展示了CountDownLatch如何工作。程序创建了一个ExecutorService来管理线程池,...

    java中的同步和异步的异同共4页.pdf.zip

    另外,Java的并发包(java.util.concurrent)提供了丰富的方法和工具,如Semaphore(信号量)、CyclicBarrier(循环屏障)和CountDownLatch(倒计时器)等,帮助开发者更高效地管理同步问题。 在实际应用中,开发者...

    java Thread & synchronized & concurrent 线程、同步、并发

    Java提供了丰富的并发工具类,如`Semaphore`信号量、`CyclicBarrier`屏障、`CountDownLatch`倒计时器和`Future`未来结果等,它们可以帮助我们设计出更灵活、高效的并发策略。此外,`java.util.concurrent`包下的`...

    某电信项目多线程同步数据实例

    5. **并发工具类**:Java并发包(java.util.concurrent)中包含许多工具类,如Semaphore(信号量)、CountDownLatch(倒计时锁)、CyclicBarrier(回环栅栏)和Exchanger(交换器),它们是设计复杂多线程同步场景的...

    线程的同步(培训机构内部资料)

    6. **CountDownLatch(倒计时器)**:通常用于一个线程等待其他线程完成操作,计数器减到零后,所有等待的线程都会被释放。 7. **FutureTask**:它可以代表一个异步计算的结果,提供了检查计算是否完成、取消计算...

    JAVA100例之实例65 JAVA线程同步

    3. **java.util.concurrent 包**:这个包提供了许多高级的线程同步工具,如Semaphore(信号量)、CyclicBarrier(回环屏障)、CountDownLatch(倒计时器)等。这些工具可以更灵活地控制线程的并发执行。 4. **...

    多线程的批量线程同步解决方案

    Java提供了多种同步机制,如synchronized关键字、锁(包括ReentrantLock)、Semaphore信号量、CountDownLatch倒计时器以及CyclicBarrier和ThreadPoolExecutor等高级并发工具。这些工具各有特点,适用于不同的场景。 ...

    欢迎界面倒计时

    这涉及到UI组件(如文本框)的更新,以及UI线程与计时器线程之间的同步问题。在Android中,可能需要用到`Handler`或`Runnable`来更新UI;在iOS中,可以使用`NSTimer`配合`KVO`(Key-Value Observing)或者`...

    Java中的多线程共15页.pdf.zip

    此外,Java的并发工具类,如Semaphore(信号量)、CountDownLatch(倒计时器)和CyclicBarrier(循环屏障)等,提供了一种协调多个线程间操作的方式。例如,Semaphore可以限制同时访问某个资源的线程数量,而...

    Java 多线程与并发(10-26)-JUC锁- 锁核心类AQS详解.pdf

    它是实现Java并发包中锁和其他同步器的基础框架,例如ReentrantLock(可重入锁)、Semaphore(信号量)、CountDownLatch(倒计时门闩)、CyclicBarrier(循环栅栏)以及ReentrantReadWriteLock(可重入读写锁)等。...

    Android 带暂停功能倒计时TimeCountDown盒子适用-IT计算机-毕业设计.zip

    使用`runOnUiThread`、`Handler`或者`View.post`方法可以在不阻塞UI线程的情况下更新计时器的显示。 4. **用户交互处理**: 应用中可能包含开始、暂停、重置等按钮,每个按钮的点击事件需要关联到相应的倒计时操作...

    JAVA线程高级-线程按序交替执行

    - JUC包含了许多高级并发组件,如`Semaphore`信号量、`CyclicBarrier`回环栅栏、`CountDownLatch`倒计时器和`Exchanger`交换器等,它们可以帮助控制线程的执行顺序。 - `Semaphore`可以限制同时访问特定资源的线程...

    java同步与互斥资料收集

    除了`synchronized`和`ReentrantLock`,Java还提供了其他并发工具,如`Semaphore`(信号量)、`CountDownLatch`(倒计时器)和`CyclicBarrier`(循环屏障),这些工具可以帮助管理线程间的协作和同步。 理解Java中...

    java 多线程PDF档

    此外,Java的并发工具类如Semaphore(信号量)、CyclicBarrier(回环栅栏)和CountDownLatch(倒计时器)等,可以帮助我们编写更加安全和高效的多线程程序。这些工具类提供了更高级别的同步原语,使得多线程编程变得...

    多线程及并发性

    Java中提供了多种同步机制,如`synchronized`关键字、`Lock`接口(包括`ReentrantLock`)、`Semaphore`信号量、`CountDownLatch`倒计时器等。`synchronized`关键字可以锁定代码块或方法,确保在同一时刻只有一个线程...

    JAVA多线程学习内容

    java.util.concurrent包中提供了高级并发工具,如Semaphore(信号量)、CyclicBarrier(循环屏障)、CountDownLatch(倒计时器)等,这些工具可以帮助开发者更有效地管理线程并实现复杂的同步策略。 死锁是多线程...

Global site tag (gtag.js) - Google Analytics