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

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

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

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

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

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

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

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

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

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

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

    同步关键字synchronized

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

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

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

  • 相关阅读:
    mysql 时间戳
    UTF8有BOM和无BOM
    php正则表达式
    二叉树的一些操作
    简单的Oracle触发器使用
    简单的Java调用Oracle存储过程
    Oracle知识关键字
    List和Set
    MyEclipse 快捷键
    Java零基础系列006——小测试(循环)
  • 原文地址:https://www.cnblogs.com/ywsheng/p/11236309.html
Copyright © 2011-2022 走看看