• 中文
    • English
  • 注册
  • 查看作者
  • 阿里P8大牛总结的Java锁机制入门笔记,堪称教科书式天花板

    前言

    锁机制无处不在,锁机制是实现线程同步的基础,锁机制并不是Java锁独有的,其他各种计算机语言中也有着锁机制相关的实现,数据库中也有锁的相关内容。这篇文章就是从Java入手,深入学习、理解Java中的锁机制,提升Java并发编程能力。

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

    1、乐观锁

    乐观锁是一种乐观思想 ,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。

    Java中的乐观锁: CAS,比较并替换,比较当前值(主内存中的值),与预期值(当前线程中的值,主内存中值的一份拷贝)是否一样,一样则更新,否则继续进行CAS操作。

    如下图所示,可以同时进行读操作,读的时候其他线程不能进行写操作。

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

    2、悲观锁

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

    3、自旋锁

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

    4、可重入锁(递归锁)

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

    5、读写锁

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

    6、公平锁

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

    7、非公平锁

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

    8、共享锁

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

    9、独占锁

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

    10、重量级锁

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

    11、轻量级锁

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

    12、偏向锁

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

    13、分段锁

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

    14、互斥锁

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

    15、同步锁

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

    16、死锁

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

    17、锁粗化

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

    18、锁消除

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

    19、synchronized

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

    20、Lock和synchronized的区别

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

    21、ReentrantLock 和synchronized的区别

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

    ReentrantLock是Java中的类 :  继承了Lock类,可重入锁、悲观锁、独占锁、互斥锁、同步锁。

    划重点

    相同点:

    1.主要解决共享变量如何安全访问的问题

    2.都是可重入锁,也叫做递归锁,同一线程可以多次获得同一个锁,

    3.保证了线程安全的两大特性:可见性、原子性。

    不同点:

    • 1.ReentrantLock 就像手动汽车,需要显示的调用lock和unlock方法,synchronized 隐式获得释放锁。

    • 2.ReentrantLock 可响应中断, synchronized 是不可以响应中断的,ReentrantLock 为处理锁的不可用性提供了更高的灵活性

    • 3.ReentrantLock 是 API 级别的, synchronized 是 JVM 级别的

    • 4.ReentrantLock 可以实现公平锁、非公平锁,默认非公平锁,synchronized 是非公平锁,且不可更改。

    • 5.ReentrantLock 通过 Condition 可以绑定多个条件

    总结

    为了不影响大家的阅读体验,这篇Java锁的学习笔记已经为大家打包好了,需要的小伙伴添加 vx: 15684955208 领取,希望这份学习笔记可以帮助大小伙伴愉快的突破对Java锁的理解和入门进阶。

  • 1
  • 0
  • 0
  • 241
  • 芒果不太甜。

    请登录之后再进行评论

    登录
  • 任务
  • 实时动态
  • 发布
  • 单栏布局 侧栏位置: