基本介绍 JUC中atomic子包里面提供了很多Atomic类,用于多线程并发下原子更新(CAS)不同类型对象,主要包括以下几大类: 原子更新基本类型类 AtomicInteger AtomicLong AtomicBo…
分类:JUC
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来实现阻塞等待获取超时元素。队列中的元素需要超时后才能够被取出,若多个线…
JUC SynchronousQueue 分析
基本介绍 SynchronousQueue JUC阻塞队列的一种,队列无实际容量,一个put操作必须等待一个take操作的执行,才会解除阻塞状态。将put考虑为生产者的话,需要等待消费者,即take操作来取它的数据,才能…
JUC PriorityBlockingQueue 分析
基本介绍 PriorityBlockingQueue JUC中阻塞队列的一种,支持阻塞的优先队列,容量最大可到int的最大值 – 8(Integer.MAX_VALUE – 8),容量可以自动扩展…
JUC ThreadPoolExecutor 分析
基本介绍 ThreadPoolExecutor,JUC提供的线程池实现,用于高效执行应用中的多种任务,通过使用多线程并发执行任务,来提高效率;另外相比于自己new Thread去跑任务,使用线程池具有更好的性能,因为线程…
JUC FutureTask 分析
基本介绍 FutureTask,JUC中提供的一个Future接口实现类,主要作用是为了支持ThreadPoolExecutor的submit操作。 经过前面对JDK线程池的分析JUC ThreadPoolExecuto…
JUC ScheduledThreadPoolExecutor 分析
基本介绍 ScheduledThreadPoolExecutor,JUC中提供的调度线程池实现,可以用来执行定时任务,实现与Timer一样的功能特性,相比于Timer,ScheduledThreadPoolExecuto…