4.并发中的各种锁概念

目录

  • 概述
  • 锁分类
    • 按上锁方式划分
    • 按特性划分
      • 悲观锁/乐观锁
      • 重入锁/不可重入锁
      • 公平锁/非公平锁
      • 独享锁/共享锁
    • 其它
      • 自旋锁
      • 分段锁
      • 无锁/偏向锁/轻量级锁/重量级锁
  • 结束

概述

java 锁分类,虽是概念,很常见。

锁分类

按上锁方式划分

关键字解释
隐式锁synchronized不需要显示加锁和解锁
显示锁juc包中提供的锁需要显示加锁和解锁

按特性划分

悲观锁/乐观锁

按照线程在使用共享资源

关键字解释
悲观锁juc锁,synchronized
乐观锁cas关系型数据库的版本号机制

重入锁/不可重入锁

按照同一个线程是否可以重复获取同一把锁,划分为重入锁和不可重入锁

  • 重入锁:ReentrantLock、synchronized
  • 不可重入锁:不可重入锁,与可重入锁相反,线程获取锁之后不可重复获取锁,重复获取会发生死锁。

公平锁/非公平锁

**按照多个线程竞争同一锁时需不需要排队,能不能插队,**划分为公平锁和非公平锁。

独享锁/共享锁

按照多个线程能不能同时共享同一个锁,锁划分为独享锁和共享锁。

独享锁和共享锁是不能同时存在的。

  • 独享锁:独享锁也叫排他锁,synchronized、ReentrantLock、ReentrantReadWriteLock的WriteLock写锁
  • 共享锁:ReentrantReadWriteLock的ReadLock读锁

其它

自旋锁

实现:CAS

分段锁

实现:ConcurrentHashMap

无锁/偏向锁/轻量级锁/重量级锁

  • 这四个锁是synchronized独有的四种状态,级别从低到高依次是:无锁、偏向锁、轻量级锁和重量级锁
  • 它们是jvm为了提高synchronized锁的获取与释放效率而做的优化
  • 四种状态会随着竞争的情况逐渐升级,而且是不可逆的过程,即不可降级。

结束

并发中的各种锁概念,至此就结束了,如有疑问,欢迎评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/166038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提高工作效率的宝藏网站和宝藏工具(高级版)

一、参考资料 亲测:你这些网站都不知道,哪来时间去摸鱼? 提高工作效率的宝藏网站和宝藏工具(基础版) 二、好用的网站 HelloGitHub - 开源项目平台 HelloGitHub 是一个分享有趣、 入门级开源项目的平台。 希望大家能…

MySQL-02-InnoDB存储引擎

实际的业务系统开发中,使用MySQL数据库,我们使用最多的当然是支持事务并发的InnoDB存储引擎的这种表结构,下面我们介绍下InnoDB存储引擎相关的知识点。 1-Innodb体系架构 InnoDB存储引擎有多个内存块,可以认为这些内存块组成了一…

qgis添加arcgis的mapserver

左侧浏览器-ArcGIS地图服务器-右键-新建连接 Folder: / 展开-双击图层即可

oracle 表树形结构查询递归查询

简介: WITH RECURSIVE 是一种在关系型数据库中处理递归查询的语法。 举例: 假设我们有一个树形结构数据表 tree_table, 包含节点的 ID、父节点的 ID 和节点名称等字段。 示例表数据: --------------- | id | pid | name | ----…

物联网AI MicroPython学习之语法 I2S音频总线接口

学物联网,来万物简单IoT物联网!! I2S 介绍 模块功能: I2S音频总线驱动模块 接口说明 I2S - 构建I2S对象 函数原型:I2S(id, sck, ws, sd, mode, bits, format, rate, ibuf)参数说明: 参数类型必选参数&#xff1f…

关于接口测试自动化的总结与思考!

序 近期看到阿里云性能测试 PTS 接口测试开启免费公测,本着以和大家交流如何实现高效的接口测试为出发点,本文包含了我在接口测试领域的一些方法和心得,希望大家一起讨论和分享,内容包括但不仅限于: 服务端接口测试介…

Vatee万腾的科技冒险:vatee创新力量的前沿发现

在当今飞速发展的科技潮流中,Vatee万腾以其独特的创新力量成为前沿的引领者。这场科技冒险不仅仅是技术的迭代,更是一次前所未有的前沿发现之旅,让我们一同深入探索Vatee万腾的科技冒险,感受vatee创新力量的前沿奇迹。 Vatee万腾将…

【Thumbnailator】图片压缩、水印、格式修改一网打尽

前言: 对于javaweb服务端开发人员,图片资源的管理总是绕不开的一环。很多网站上都会提供上传图片这个功能,而现代数码设备拍摄出来的都是高清图片,分辨率很高,占用的空间也很大。物理存储的问题还算容易解决&#xff0…

机器学习---最大似然估计和贝叶斯参数估计

1. 估计 贝叶斯框架下的数据收集,在以下条件下我们可以设计一个可选择的分类器 : P(wi) (先验);P(x | wi) (类条件密度) 但是。我们很少能够完整的得到这些信息! 从一个传统的样本中设计一个分类器: ①先验估计不成问题 ②对类条件密度…

苹果企业签名失败常见的问题

苹果企业签名失败的常见问题主要有以下几种: 证书过期或无效:苹果开发者需要定期更新他们的签名证书,以确保其有效性。一旦证书过期,相关应用将无法正常工作。证书不匹配:如果使用的证书与应用程序的Bundle ID不匹配&…

WT588F02B-8S语音芯片支持PWM音频输出的特征优势及应用前景

随着科技的飞速发展,语音芯片作为人机交互的核心组件,在各个领域的应用越来越广泛。而在这些语音芯片中,支持PWM音频输出的特性日益受到关注。本文将探讨语音芯片支持PWM音频输出的特征优势以及其在各个领域的应用前景。 一、特征优势 1、高…

git本地账户如何从一台电脑迁移到另外一台

为了表述方便,我们此处用旧电脑、新电脑指代。 在新电脑上安装git 例如,我旧电脑上安装的git版本是2.33.1版本,新电脑安装git的版本是2.43.0,这不妨碍迁移。 将git的全局配置文件从旧电脑拷贝到新电脑 Git的全局配置文件&…

“关爱零距离.情暖老人心”主题活动

为提高社区老年人的生活质量,促进邻里间的互动与友谊,以及弘扬尊老爱幼的社区精神,11月21日山东省潍坊市金阳公益服务中心、重庆市潼南区同悦社会工作服务中心在潼南区桂林街道东风社区共同在潼南区桂林街道东风社区举办了“关爱零距离.情暖老…

22款奔驰S400L升级原厂360全景影像 高清环绕 无死角

360全景影像影像系统提升行车时的便利,不管是新手或是老司机都将是一个不错的配置,无论是在倒车,挪车以及拐弯转角的时候都能及时关注车辆所处的环境状况,避免盲区事故发生,提升行车出入安全性。 360全景影像包含&…

自学编程,用好这几个网站就够了!

如果你要自学编程,一定要收藏好这7个网站,上面免费的优质教程很多,完全可以省去你上万块钱的学费! 话不多说,直接上干货! 第一个,W3school 一个主打图文教程的网站,不管是前端开发…

怎样将带表格的图片批量合并转换成word表格?

注:本功能适用于V3.66以上版本的金鸣表格文字识别大师 在日常的办公场景中,我们常常会遇到需要将带有表格类的图片识别成excel的需求。我们知道,普通的OCR软件并不具备识别中文表格的功能,即使有,效果也强差人意&…

JSP:MVC

Web应用 一个好的Web应用: 功能完善 易于实现和维护 易于扩展等 的体系结构 一个Web应用通常分为两个部分: m 1. 由界面设计人员完成的 表示层 (主要做网页界面设计) m 2. 由程序设计人员实现的 行为层 (主要完成本…

SELinux零知识学习二十五、SELinux策略语言之类型强制(10)

接前一篇文章:SELinux零知识学习二十四、SELinux策略语言之类型强制(9) 二、SELinux策略语言之类型强制 3. 访问向量规则 AV规则就是按照对客体类别的访问许可指定具体含义的规则,SELinux策略语言目前支持四类AV规则: allow:表示允许主体对客体执行允许的操作。neveral…

2015年7月8日 Go生态洞察:Go、开源与社区

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

C#面试题3

1.请解释一下C#中的并发编程和线程安全性。 并发编程是指在多线程环境下编写代码以实现并发执行的能力。C#提供了一些机制来支持并发编程,如线程、任务和并行循环等。线程安全性是指在多线程环境下,代码能够正确地处理共享数据并保持一致性。线程安全的代…