悲观锁、乐观锁的区别及使用场景

悲观锁、乐观锁的区别及使用场景定义:悲观锁(Pessimistic Lock): 每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。乐观锁(Optimistic Lock): 每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候…

大家好,又见面了,我是你们的朋友全栈君。

定义:

悲观锁(Pessimistic Lock): 
每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。

乐观锁(Optimistic Lock): 

每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候需要判断该数据是否被别人修改过。如果数据被其他线程修改,则不进行数据更新,如果数据没有被其他线程修改,则进行数据更新。由于数据没有进行加锁,期间该数据可以被其他线程进行读写操作。

使用场景:

悲观锁:比较适合写入操作比较频繁的场景,如果出现大量的读取操作,每次读取的时候都会进行加锁,这样会增加大量的锁的开销,降低了系统的吞吐量。

乐观锁:比较适合读取操作比较频繁的场景,如果出现大量的写入操作,数据发生冲突的可能性就会增大,为了保证数据的一致性,应用层需要不断的重新获取数据,这样会增加大量的查询操作,降低了系统的吞吐量。

总结:两种所各有优缺点,读取频繁使用乐观锁,写入频繁使用悲观锁。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147273.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月13日 下午5:16
下一篇 2022年6月13日 下午5:16


相关推荐

  • WEditor使用方法介绍与异常解决

    WEditor使用方法介绍与异常解决WEditor 使用方法介绍安装 1 终端中输入 pipinstallwe 安装 weditor 启动 1 终端中输入 python mweditor 启动 weditor2 启动完成会打开浏览器定位元素与代码获取 1 点击要获取的控件 可直接获取代码片 2 摸索吧 很简单方便 常见问题 1 启动时提示 Nomodulename St

    2026年3月17日
    1
  • phpstudy的Apache配置SSL成功将HTTP转换为HTTPS访问[通俗易懂]

    phpstudy的Apache配置SSL成功将HTTP转换为HTTPS访问[通俗易懂]phpstudy的Apache配置SSL成功将HTTP转换为HTTPS访问

    2022年4月24日
    128
  • 六大AI模型性能深度评测:DeepSeek、ChatGPT等实力解密

    六大AI模型性能深度评测:DeepSeek、ChatGPT等实力解密

    2026年3月12日
    3
  • 博科SAN交换机zone配置(华为SNS系列交换机为例OEM博科)[通俗易懂]

    博科SAN交换机zone配置(华为SNS系列交换机为例OEM博科)[通俗易懂]一、zone的定义Zone是Brocade交换机上的标准功能,FCSWITCH上的Zone功能类似于以太网交换机上的VLAN功能,它是将连接在SAN网络中的设备(主机和存储),逻辑上划到为不同的区域内,使得不同区域中的设备相互间不能FC网络直接访问,从而实现网络中的设备之间的相互隔离。二、Zone的功能包含以下两点:1.防止主机节点访问未经授权的存储。Zone中的设备只能访问同一Zone中连接到Fabric的其它设备。不在Zone中的设备不能被Fabric中的其他设备访问。2.隔离不必要状态

    2022年5月21日
    363
  • 微型计算机硬件系统的性能主要取决6,微机计算机硬件系统的性能主要取决于…

    微型计算机硬件系统的性能主要取决6,微机计算机硬件系统的性能主要取决于…大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。微机计算机硬件系统的性能主要取决于微处理器。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。微处理器由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器与传统的中央处理器相比,具有体积小、重量轻和容易模块化等优点。微处理器的基本组成…

    2022年6月28日
    30
  • 汇编语言之Debug教程篇

    参考书籍《汇编语言》——王爽Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询。命令用途Debug-R查看、改变CPU寄存器的内容Debug-D查看内存中的内容Debug-E改写内存中的内容Debug-U将内存中的机器指令翻译成汇编指令Debug-T执行一条机器指令…

    2022年4月16日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号