阿里P8大牛总结的Java锁机制入门笔记,堪称教科书式天花板!
前言
锁机制无处不在,锁机制是实现线程同步的基础,锁机制并不是Java锁独有的,其他各种计算机语言中也有着锁机制相关的实现,数据库中也有锁的相关内容。这篇文章就是从Java入手,深入学习、理解Java中的锁机制,提升Java并发编程能力。
1、乐观锁
乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。
Java 中的乐观锁: CAS,比较并替换,比较当前值(主内存中的值),与预期值(当前线程中的值,主内存中值的一份拷贝)是否一样,一样则更新,否则继续进行 CAS 操作。
如上图所示,可以同时进行读操作,读的时候其他线程不能进行写操作。
2、悲观锁
3、自旋锁
4、可重入锁(递归锁)
5、读写锁
6、公平锁
7、非公平锁
8、共享锁
9、独占锁
10、重量级锁
11、轻量级锁
12、偏向锁
13、分段锁
14、互斥锁
15、同步锁
16、死锁
17、锁粗化
18、锁消除
19、synchronized
20、Lock和synchronized的区别
21、ReentrantLock 和synchronized的区别
Java锁机制笔记(附图解+思路分析)
获取方式↓↓↓
添加VX备注【612】即可免费获取
喜欢小编的文章可以点点关注!小编不定期的分享最新Java笔记和面试真题
【JAVA面试题专栏】
1、2022年Java后端面试手册,助力金三银四,吃透25个技术栈!
2、2022年金三银四,Java后端开发最全面试攻略,程序员求职必看!
评论