当前位置: 首页 > news >正文

悲观锁与乐观锁

一、悲观锁与乐观锁宏观的概念

        悲观锁(Pessimistic Locking),具有强烈的独占和排他特性。它指的是对数据被外界修改持保守态度。因此,在整个执行过程中,将处于锁定状态。所以,悲观锁是一种悲观思想,它总认为最坏的情况可能会出现,它认为数据很可能会被其他人所修改,所以悲观锁在持有数据的时候总会把资源 或者 数据 锁住,这样其他线程想要请求这个资源的时候就会阻塞,直到等到悲观锁把资源释放为止。Java中的Synchronized和ReentrantLock 是一种悲观锁思想的实现,因为 Synchronzied 和 ReetrantLock 不管是否持有资源,它都会尝试去加锁。
        乐观锁(Optimistic Locking) 相对悲观铁而言,乐观锁机制采取了更加宽松的加锁机制。乐观锁的思想与悲观锁的思想相反,它总认为资源和数据不会被别人所修改,所以读取不会上锁,但是乐观锁在进行写入操作的时候会判断当前数据是否被修改过。Java中的stampedLock和 AtomicInteger 是一种乐观锁思想的实现。

二、简单理解

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一个WebSocket的前端封装类
  • RocketMQ 消费方式
  • vue组件之间的数据共享
  • vite 使用飞行器仪表示例
  • IDEA 2024.3 EAP新特征早览!
  • C#基础(16)实践:学生成绩管理系统
  • 基于PHP+MySQL组合开发的在线客服源码系统 聊天记录实时保存 带完整的安装代码包以及搭建部署教程
  • 【JVM】垃圾回收机制|死亡对象的判断算法|垃圾回收算法
  • 学习笔记——RegNet:Designing Network Design Spaces
  • (k8s)kubernetes集群基于Containerd部署
  • 2024年开放式蓝牙耳机十大排名震撼揭晓!哪款开放式耳机是音质王者?
  • 从零开始学习Linux(13)---多线程
  • Flutter iOS混淆打包
  • python中ocr图片文字识别样例(一)
  • 低级编程语言和高级编程语言
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • avalon2.2的VM生成过程
  • java8-模拟hadoop
  • LintCode 31. partitionArray 数组划分
  • Linux中的硬链接与软链接
  • XML已死 ?
  • 反思总结然后整装待发
  • 基于游标的分页接口实现
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • (1)Nginx简介和安装教程
  • (55)MOS管专题--->(10)MOS管的封装
  • (javascript)再说document.body.scrollTop的使用问题
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (七)Flink Watermark
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • 、写入Shellcode到注册表上线
  • .Net Core 微服务之Consul(二)-集群搭建
  • .net SqlSugarHelper
  • .NET WPF 抖动动画
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net(C#)中String.Format如何使用
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .NET中 MVC 工厂模式浅析
  • .Net中ListT 泛型转成DataTable、DataSet
  • @PostConstruct 注解的方法用于资源的初始化
  • [ solr入门 ] - 利用solrJ进行检索
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [20160807][系统设计的三次迭代]
  • [20170705]diff比较执行结果的内容.txt
  • [20190401]关于semtimedop函数调用.txt
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C#]使用OpenCvSharp图像滤波中值滤波均值滤波高通滤波双边滤波锐化滤波自定义滤波
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [C++] sqlite3_get_table 的使用