J.U.C家族

目录

一. 前言

二. 分类

2.1. Lock框架和Tools类

2.2. Collections并发集合

2.3. Atomic原子类

2.4. Executors线程池


一. 前言

       JUC是JAVA中java.util.concurrent包的简称。它位于JDK的rt.jar中,是JDK的核心工具包之一。从字面上来理解就是java并发工具包。

主要包含: (上图无法表述一些继承关系,同时少了部分类;但是主体上可以看出其分类关系)
Lock框架和Tools类(把图中这两个放到一起理解)
Collections: 并发集合
Atomic: 原子类
Executors: 线程池

二. 分类

2.1. Lock框架和Tools类

Lock常见类:接口有Condition、Lock、ReadWriteLock,抽象类有AbstractOwnableSynchonizer、AbstractQueuedLongSynchronizer、AbstractQueuedLongSynchronizer、AbstractQueuedSynchronizer,实现类有LockSupport、ReentrantLock、ReentrantReadWriteLock、StampedLock。详细拆解请参见《JUC之Lock及核心AQS》

Tools工具类:CountDownLatch、CyclicBarrier、Phaser、Semaphore、Exchanger。详细拆解请参见《CountDownLatch、CyclicBarrier、Semaphore、Exchanger详解》

2.2. Collections并发集合

常见并发集合:List有CopyOnWriteArrayList,Map有ConcurrentHashMap、ConcurrentSkipListMap,Set有CopyOnWriteArraySet、ConcurrentSkipListSet,Queue有ArrayBlockingQueue、LinkedBlockingQueue、LinkedBlockingDeque、ConcurrentLinkedQueue、ConcurrentLinkedDeque、DelayQueue、PriorityBlockingQueue、SynchronousQueue、LinkedTransferQueue。List详解请参见《List家族》,Map详解请参见《Map家族》,Set详解请参见《Set家族》,Queue家族详解请参见《Queue家族》

2.3. Atomic原子类

原子类的基本特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个线程进入,这只是一种逻辑上的理解。实际上是借助硬件的相关指令来实现的,不会阻塞线程(或者说只是在硬件级别上阻塞)。详解请参见《JUC之Atomic原子类》

基础类型:AtomicBoolean,AtomicInteger,AtomicLong
数组:AtomicIntegerArray,AtomicLongArray,BooleanArray
引用:AtomicReference,AtomicMarkedReference,AtomicStampedReference
FieldUpdater:AtomicLongFieldUpdater,AtomicIntegerFieldUpdater,AtomicReferenceFieldUpdater

2.4. Executors线程池

详解请参见:《线程池详解》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流华追梦

你的鼓励将是我创作最大的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值