1. 序章
1)JUC是什么?
java.util.concurrent在并发编程中使用的工具包
对JUC知识的高阶内容讲解和实战增强
2)为什么学习并用好多线程极其重要?
硬件方面:
摩尔定律:
它是由英特尔创始人之一Gordon Moore(戈登·摩尔)提出来的。其内容为:
当价格不变时,集成电路上可容纳的元器件的数目约每隔18-24个月便会增加一倍,性能也将提升一倍。
换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。
可是从2003年开始CPU主频已经不再翻倍,而是采用多核而不是更快的主频。
摩尔定律失效了,在主频不再提高且核数在不断增加的情况下,要想让程序更快就要用到并行或并发编程。
软件方面:
面试B格可以高一点点
充分利用多核处理器
提高程序性能,高关发系统
提高程序吞吐量,异步+回调等生产需求
弊端及问题:
线程安全性问题
线程锁问题
线程性能问题
2.中章
CompletableFuture
说说Java“锁”事
LockSupport与线程中断
Java内存模型之JMM
volatile与JMM
CAS
原子操作类之18罗汉增强
Java对象内存布局和对象头
聊聊ThreadLocal
Synchronized与锁升级
AbstractQueuedSynchronizer之AQS
ReentrantLock、ReentrantReadWriteLock、StampedLock讲解
3. 终章
1)总览
2)‘锁"事儿
3)synchronized及升级优化
锁的到底是什么
无锁→偏向锁→轻量锁→重量锁
Java对象内存布局和对象头
64位图
4)CAS
CAS的底层原理圃
ABA问题
5)volatile
6)LockSupport和线程中断
7)AQS
8)ThreadLocal
注:本文是学习B站周阳老师《尚硅谷2022版JUC并发编程》课程所做学习笔记。