阿里P8大牛总结的Java锁机制入门笔记,堪称教科书式天花板!

麒麟改bug

共 707字,需浏览 2分钟

 · 2022-06-15

前言

锁机制无处不在,锁机制是实现线程同步的基础,锁机制并不是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后端开发最全面试攻略,程序员求职必看!



浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报