zoukankan      html  css  js  c++  java
  • 深入理解Java中的锁

    自旋锁 : 是指当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断判断锁是否能够被成功获取,直到获取到锁才会退出循环。

    乐观锁 : 假定没有冲突,在修改数据时如果发现数据和之前获取的不一致,则读最新数据,修改后重试修改

    悲观锁 :假定会发生并发冲突,同步所有对数据的相关操作,从读数据就开始上锁

    独享锁(写) : 给资源加上写锁,拥有该锁的线程可以修改资源,其他线程不能再加锁(单写)

    共享锁(读) : 给资源加上读锁后只能读不能改,其他线程也只能加读锁,不能加写锁 (多读)

    可重入锁 :线程拿到一把锁后,可以自由进入同一把锁所同步的代码

    不可重入锁 :线程拿到一把锁后,不可以自由进入同一把锁所同步的代码

    公平锁 :争抢锁的顺序,按照先来后到的顺序

    非公平锁 :争抢锁的顺序,不按照先来后到的顺序

    Java中几种重要的锁实现方式:synchronizedReentrantLockReentrantReadWriteLock

    同步关键字synchronized

    • 用于实例方法,静态方法时,隐式指定锁对象
    • 用于代码块时显示指定锁对象
    • 锁的作用域:对象锁,类锁,分布式锁

    synchronized特性:可重入,独享,悲观锁

    https://www.cnblogs.com/coding-diary/p/11235047.html

  • 相关阅读:
    第八周编程总结
    第五周课程总结&试验报告(三)
    第四周课程总结&试验报告(二)
    第三周课程总结&实验报告一
    2019春总结作业
    第一次随笔
    我人生中影响最大的三位老师
    第十二周作业
    第十一周编程总结
    第十周作业
  • 原文地址:https://www.cnblogs.com/ywsheng/p/11236309.html
Copyright © 2011-2022 走看看