JUC 多线程并发同步工具类原理及源码解析 聚合

**JUC(java.util.concurrent)**包下的类都是用于高并发, 多线程的, 包含了ConcurrentHashMap, 原子操作类, ReentrantLock, AQS等. 也是面试过程中最常问的java基础题. 搞清楚各工具类的原理有助于我们编程水平的提升, 也在面试的过程中增加自信心.

ConcurrentHashMap

HashMap的线程安全方式, 与1.7有不同, 使用cas和synchronize关键字实现线程安全
ConcurrentHashMap原理解析

Atomic原子操作

底层使用了Unsafe下的本地方法, 通过volatile和cas实现原子操作
Atomic并发原子类源码及使用示例 解决ABA问题
使用AtomicReference类通过自旋和CAS简单实现自定义可重入锁

AQS(AbstractQueuedSynchronizer)

JUC下多线程同步工具的基础类, ReentrantLock, CountDownLatch, ReentrantReadWriteLock等都是通过此工具实现的
并发锁底层支持AQS(AbstractQueuedSynchronizer)原理及源码解析

ReentrantLock

可重入锁, 实现了公平锁, 底层使用了AQS支持
ReentrantLock可重入锁、公平锁、非公平锁源码分析
使用synchronize和RenentrantLock循环打印指定量数字或字母ABC

ReentrantReadWriteLock

可重入读写锁, ReentrantLock的升级版, 用于读写并发操作, 提升吞吐量
ReentrantReadWriteLock可重入读写锁源码解析

BlockingQueue

阻塞队列, 主要用于线程池的等待队列, 分为有界和无界队列
BlockingQueue阻塞队列的实现方式及源码解析

ThreadPool

线程池, 使用线程池就是为了解决线程创建销毁所带来的资源消耗, 也可以控制并发执行的线程数
线程池ThreadPoolExecutor原理及使用分析

CyclicBarrier和CountDownLatch

CyclicBarrier循环屏障, 也就是可以重复使用的, 线程同步方式, 使用场景, 当多个线程同时满足某一条件, 同时执行
CountDownLatch计数器, 当某些线程完成后, 主线程才能继续执行
CyclicBarrier和CountDownLatch用法
CyclicBarrier和CountDownLatch源码解析

Semaphore

信号量, 可动态控制线程执行个数, 达到性能最佳
Semaphore信号量使用及源码分析

CopyOnWriteArrayList和CopyOnWriteSet

用于多线程对集合并发读取和修改, 核心原理对集合复制, 同时操作多个集合
ArrayList HashMap非线程安全 List和Set线程安全实现方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值