独享锁/共享锁

独享锁是指该锁一次只能被一个线程所持有。

共享锁是指该锁可被多个线程所持有。

对于Java ReentrantLock而言,其是独享锁。但是对于Lock的另一个实现类ReadWriteLock,其读锁是共享锁,其写锁是独享锁。

读锁的共享锁可保证并发读是非常高效的,读写,写读,写写的过程是互斥的。

独享锁与共享锁也是通过AQS来实现的,通过实现不同的方法,来实现独享或者共享。

对于Synchronized而言,当然是独享锁。

互斥锁/读写锁

上面讲的独享锁/共享锁就是一种广义的说法,互斥锁/读写锁就是具体的实现。

互斥锁在Java中的具体实现就是ReentrantLock。

读写锁在Java中的具体实现就是ReadWriteLock。

想要了解跟多关于java培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量java培训课程视频供广大学员下载学习。

什么是独享锁/共享锁_java培训相关推荐

  1. Java锁详解:“独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁+线程锁”

    在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁 线程锁 乐观锁 VS 悲 ...

  2. 最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

    在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较.使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这篇文章来详细介绍各种锁的分类: 公 ...

  3. 独享还是共享,你选择哪一种锁?(独享锁/共享锁)

    独享还是共享,你选择哪一种锁 前言 今天博主将为大家分享独享还是共享,你选择哪一种锁?(独享锁/共享锁),不喜勿喷,如有异议欢迎讨论! 有一个强大的地基才能写出健壮的程序! 顾名思义,独享,只能被一个 ...

  4. 云阶月地,关锁千重(一.独享锁/共享锁)

    之前在的文章中已经写了公平锁和非公平锁了,接下来就该介绍第二种锁了,他就是共享锁和独享锁,顾名思义,独享,只能被一个线程 所持有,而共享,就是说可以被多个线程所共有. 锁的分类 公平锁/非公平锁 可重 ...

  5. 可重入锁/不可重入锁,公平锁/非公平锁,乐观锁/悲观锁,独享锁/共享锁,偏向锁/轻量级锁/重量级锁,分段锁,自旋锁

    在并发编程中,会涉及到各种各样的锁,这篇文章主要介绍各种锁的分类以及作用. 介绍的内容如下: 可重入锁/不可重入锁 公平锁/非公平锁 乐观锁/悲观锁 独享锁/共享锁 偏向锁/轻量级锁/重量级锁 分段锁 ...

  6. java 对变量加锁_Java最全锁剖析:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁...

    乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用. 1.乐观锁 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会 ...

  7. 说一下独享锁/共享锁?

    1.独享锁是指该锁一次只能被一个线程所持有 2.共享锁是指该锁可被多个线程所持有 3.对于Java ReentrantLock(重入锁)而言,其实是独享锁.但是对于Lock的另一个实现类ReadWri ...

  8. Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等...

    http://blog.51cto.com/13919357/2339446 Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容 ...

  9. Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等

    Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容如下: 公平锁 / 非公平锁 可重入锁 / 不可重入锁 独享锁 / 共享锁 互 ...

最新文章

  1. 视频监控线缆选型须知 转
  2. 负载均衡(LB)集群 dr
  3. AutoCAD2022 安装说明
  4. 基于ARM+FPGA低成本高实时Ethercat运动控制器解决方案
  5. VS2017离线安装
  6. Latex设置每段前的空格数
  7. Iphone6+ 手机边框图片
  8. L1-068 调和平均 (10分)
  9. 钢琴 低音到高音 音效_什么是低音扬声器,中音扬声器和高音扬声器?
  10. 服务器跑项目,如何使用远程服务器跑项目
  11. 昨天学会2件事,一件是multisim 添加自定义模型或导入模型文件,包括opa695和9013等三极管
  12. CSV文件与json文件转换实例
  13. linux驱动K10运算卡,NVIDIA TESLA K10 GPU 运算卡 K20 C2075 C2050
  14. 搜索优化—如何在Google搜索引擎上排名靠前Google左侧排名
  15. C# vs Java —— 剑客vs刀客 Java vs .NET之飘逸的Java
  16. python 数组写txt_python txt文件常见读写操作
  17. 问卷调查系统搭建(一)
  18. php get month,getMonth()方法_用法示例-javascript词典-js编程词典-php中文网
  19. minicom的使用
  20. 奥沙利文:大师中的大师

热门文章

  1. iOS动画:粒子发射器(20)
  2. MySql怎么附加数据库
  3. 计蒜客 428(人人都有极客精神-日期问题)
  4. 2019 MySQL 8 安全安装避坑指南
  5. Identity, Positive, 和Similarity的区别
  6. Aardio 第一天:使用虚表和适配器+试融合Java
  7. IT通过什么途径去美国工作?
  8. [笨叔点滴6] 叔,这个git咋玩啊?
  9. 英语中For和To的区别
  10. 使用redis的setnx可以非同一线程进行加锁和解锁(附源码)