CyclicBarrier 同步屏障,如果有人问你如何让N个线程同时之行某件事,请告诉他CyclicBarrier 那么他是如何来确保这一点的呢? 通过await使所有线程进入barrier。当达到预设计数器或await…
分类:java并发
JUC系列之模拟抢票(N人同时抢票,票不足系统补仓,N-M人继续抢票)
下载 http://download.csdn.net/download/crazyzxljing0621/9969870 前言 10.1要去苏州玩。 9月初去携程买票,发现过几天才放票 现在可以预约抢票。 用…
Java JUC
Java JUC 简介 在Java 5.0 提供了java.util.concurrent(简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步IO 和轻量级…
JUC AbstractQueuedSynchronizer分析
什么是AQS AQS即AbstractQueuedSynchronizer的简称,是实现JUC(java.utils.concurrent包)同步组件的通用基础骨架,JDK中基于此骨架实现的同步组件主要包括Reentra…
JUC ReentrantLock 分析
基本介绍 ReentrantLock,可重入锁,基于AQS实现的互斥锁,在互斥锁之上支持可重入。可重入的意思是,同一个线程可以多次调用lock方法,而不会导致自己等待自己锁的释放。根据内部实现,分为公平性可重入锁和非公平…
JUC Atomic原子类分析
基本介绍 JUC中atomic子包里面提供了很多Atomic类,用于多线程并发下原子更新(CAS)不同类型对象,主要包括以下几大类: 原子更新基本类型类 AtomicInteger AtomicLong AtomicBo…
JUC CountDownLatch 分析
简介 JUC提供的并发组件CountDownLatch可以实现类似Thread.join的效果,实现等待多个线程执行结束以后才执行接下来逻辑的功能(一个线程阻塞等待其他多个并发任务线程执行完任务之后才解除阻塞) eg: …
JUC Semaphore 分析
基本介绍 Semaphore,JUC中提供的一个并发组件,根据字面理解是信号量的意思。Semaphore能够实现的功能是允许多个线程同时获取共享资源,实际是共享锁(基于AQS的共享实现模式)的实现。获取不到资源的线程会进…
JUC CyclicBarrier 分析
基本介绍 CyclicBarrier可实现多个线程同时等待,达到一个共同临界点,才一起往下执行,并且,可以在达到共同临界点的时候,触发一个action。这个同步组件实现的功能看似与CountDownLatch一样,但是与…
JUC ArrayBlockingQueue 分析
先说说BlockingQueue BlockingQueue,JUC中定义的阻塞队列接口,为阻塞队列的实现定义了一些通用的方法,其中包括非阻塞操作以及阻塞操作 非阻塞操作: offer,add(add不常用):队列添加元…
JUC LinkedBlockingQueue 分析
基本介绍 JUC里面提供的有界阻塞队列,基于链表方式实现 默认队列大小为Integer.MAX_VALUE,给人的感觉是近乎无界,在构造的时候可以自行指定队列的容量 内部维护两把锁(putLock与takeLock),用…
JUC DelayQueue 分析
基本介绍 DelayQueue,JUC阻塞队列的一种,依赖ReentrantLock(非公平实现)、Condition以及PriorityQueue来实现阻塞等待获取超时元素。队列中的元素需要超时后才能够被取出,若多个线…