谈谈乐观锁

news/2024/5/20 9:55:23 标签: java, 数据库, 开发语言, JUC

谈谈乐观锁
乐观锁,悲观锁,并不是特指什么具体的锁,而是一种策略,思想。
乐观锁就是比较乐观,认为自己在使用数据的时候, 不会有其他线程对其进行修改,所以就不会加锁,说白了乐观锁,根本没有锁,是一种无锁编程。
乐观锁,只是在更新数据之前,看一下数据有没有被别的线程修改过,如果没有数据没有被别的线程修改过,也不能说的这么绝对,因为存在ABA的问题,就更新数据;如果数据被别的线程修改过了,就不更新,进行重试。
CAS是乐观锁实现的核心机制之一。
CAS 是硬件层面,CPU提供的原子指令。由于该指令在硬件层面实现,因此效率非常高
像乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去锁的开销,加大了系统的整个吞吐量。但如果经常产生冲突,上层应用会不断的进行重试,这样反倒是降低了性能,所以这种情况下用悲观锁就比较合适。


http://www.niftyadmin.cn/n/5104055.html

相关文章

Java注解和工程搭建

C#里的Attributes对应java的注解。作用类似标签,可以供程序反射使用。可以借助特性给实体标准长度限制,外键参照等信息,从儿基于此基础实现通用码表。 定义方式和interface类似 外键参照特性 //特性,为通用码表提供支持 packa…

重装操作系统后 gitee:Failed to create Gitee Repository

错误描述 重装系统后,提交项目代码到gitee程序报错: 11:21 Failed to create Gitee Repositorydetected dubious ownership in repository at E:/Workspaces/SpringBoot/saTokenE:/Workspaces/SpringBoot/saToken is owned by:S-1-5-21-1301660696-421…

Apache Jmeter测压工具快速入门

Jmeter测压工具快速入门 一、Jmeter介绍二、Jmeter On Mac2.1 下载2.2 安装2.2.1 环境配置2.2.2 初始化设置 2.3 测试2.3.1 创建JDBC Connection Configuration2.3.2 创建线程组2.3.3 创建JDBC Request2.3.4 创建结果监控2.3.4 运行结果 2.4 问题记录2.4.1 VM option UseG1GC异…

C++算法:数据流的中位数

题目 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化 MedianFin…

性能监控软件是什么?有哪些优势?

在现代科技驱动的世界中,计算机系统的性能对于企业和个人用户都至关重要。性能监控软件是一种不可或缺的工具,可以帮助我们实时跟踪、分析和优化系统的性能。本文将介绍性能监控软件的概念、其重要性以及如何选择和使用这些工具来提高系统效率。 一、性能…

运筹系列86:MIP问题的建模tips

1. Either-or constraint 添加辅助变量y。 比如 Either 3 x 1 2 x 2 ≤ 18 3x_12x_2 \le 18 3x1​2x2​≤18 or x 1 4 x 2 ≤ 16 x_14x_2 \le 16 x1​4x2​≤16 可以用 3 x 1 2 x 2 ≤ 18 M y 3x_12x_2 \le 18My 3x1​2x2​≤18My x 1 4 x 2 ≤ 16 M ( 1 − y ) x_1…

科技与时尚共进化,优衣库以硬实力创造品牌长期价值

时尚总是轮回,服装产品如何保持长青?对优衣库来说,产品力不褪色的密码之一,就是始终坚持推动服装科技与时尚融合,赋予生活潮流更多内涵,和更高品质的穿搭体验。 这一点,往往在每年换季新品上市…

爬虫项目-爬取领导留言板

对于有需要爬取领导留言板的朋友,可以留言,一起交流技术;如果是有需要帮忙爬取数据的也可私聊! 项目简介,本次项目爬取网站为:https://liuyan.people.com.cn/home 大致思路,首先使用爬取留言用…