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

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

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

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

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

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

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

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

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

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

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

    同步关键字synchronized

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

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

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

  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/ywsheng/p/11236309.html
Copyright © 2011-2022 走看看