JUC底层实现

JUC

JUC是什么

由JDK提供的线程开发工具包 java.util.concurrent的简称,位于JRE的lib中的rt.jar(runtime.jar)下,它提供了Atomic原子类、locks(我们主要关注的是AQS)、多线程并发编程相关的类(线程池、三大并发工具等)

Atomic原子类

原子类就是具有原子 操作特征的类,通过volatie + Unsafe类中对CAS(Compare AND Swap)的实现保证并发安全,Unsafe 类的所有方法都是 native 修饰的,也就是说所有方法都是直接调用操作系统底层资源进行执行相应任务,通常一个操作一但开始,就不会被其他线程影响。
在这里插入图片描述
各种原子类都是依赖于Usafe类中的方法去实现,通过native本地方法,直接调用操作系统底层资源执行相应任务;

locks (通常关注AQS)

JVM提供了synchronized给开发者使用,但是在并发编程的场景下,它提供的功能往往无法满足业务需求;
AbstractQueuedSynchronizer 是一个抽象的队列同步器,定义了一套多线程访问共享资源的同步模板,提供了如ReentrantLock、CountDownLatch、Semaphore等同步工具
在这里插入图片描述
主要构成:
1: state 同步状态
2:Node 节点组成的CLH队列
3:Condition t条件变量

线程池 ThreadPool

提供线程池的相关接口
ThreadPoolExecutor 是线程池的核心实现类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值