java基础—悲观锁和乐观锁

java基础—悲观锁和乐观锁

悲观锁:

悲观锁总是假设最坏的情况,每次拿数据都认为别人会修改数据,所以要加锁,别人只能等待,直到我释放锁才能拿到锁;数据库的行锁,表锁,写锁都是这种方式,java中的synchtorized和ReentrantLock也是悲观锁的思想

乐观锁:

总是假设最好的情况,每次拿数据都认为别人不会修改数据,所以不会加锁,但是更新的时候,会判断在此期间有没有人修改过,一般基于版本号机制实现

乐观锁适用于读多写少的情况, 即冲突很少发生,如果是多写的情况,应用会不断重试,反而会降低系统性能,这种情况最好用悲观锁,因为等待锁被释放后,可以立即获得锁进行操作

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 将 VSCode 快捷键修改为 eclipse的快捷键[通俗易懂]

    将 VSCode 快捷键修改为 eclipse的快捷键[通俗易懂]文章目录1、VSCode中打开`命令面板`,如下图所示。2)在命令面板中输入`keyboard`3)打开`首选项:打开键盘快捷方式(JSON)`4)在`keybindings.json`中配置快捷键配置1(常用的快捷键)配置2(最全的快捷键)1、VSCode中打开命令面板,如下图所示。2)在命令面板中输入keyboard在命令面板中输入keyboard,然后在列表中选择首选项:打开键盘快捷方式(JSON):3)打开首选项:打开键盘快捷方式(JSON)点击

    2022年6月3日
    97
  • Linux下wait, WIFEXITED, WEXITSTATUS的比较

    Linux下wait, WIFEXITED, WEXITSTATUS的比较偶尔翻到了这几个关键字,找到个文章复习了下:“点我”。记录下:wait的函数原型是:#include/*提供类型pid_t的定义*/#includepid_twait(int*status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已

    2022年4月20日
    169
  • java验证电话号码的正则_java使用正则表达式判断电话号码

    java验证电话号码的正则_java使用正则表达式判断电话号码Iwanttohavephonenumberinworkingcombinationof’0’followedby10digitmobilenumber(or)0091folllowedby10digitmobilenumber(or)+91followedby10digitnumber.1)0followedand+91fo…

    2022年9月17日
    0
  • bwapp通关(全完结)

    bwapp通关(全完结)bwapp/A1-Injection/HTMLInjection-Reflected(GET)HTMLInjection-Reflected(POST)HTMLInjection-Reflected(CurrentURL)HTMLInjection-Stored(Blog)iFrameInjectionLDAPInjection(Search)【待开化】———————-bWAPPv2.2—————–

    2022年9月23日
    0
  • 对角化可逆矩阵怎么求_正交矩阵一定可逆吗

    对角化可逆矩阵怎么求_正交矩阵一定可逆吗1矩阵对角化方法摘要:本文给出了一种不同于传统方法的矩阵对角化方法,利用矩阵的初等变换,先求出矩阵的特征根与特征向量,接着再判断矩阵是否可对角化。关键词:矩阵特征根特征向量对角化TheMethodsoftheDiagonalizationoftheMatrixgAbstract:Inthispaper,themethodofthediagonalizationoft…

    2025年6月15日
    0
  • django开发从入门到实战pdf_Helloworld是什么意思

    django开发从入门到实战pdf_Helloworld是什么意思本系列教程是讲述Django框架的,如果你正在看本教程那么你应该对Django已经有了初步的了解,简而言之Django就是一个基于Python的Web开发框架。在学习Django之前最好有Python基础,如果没有Python基础但是有别的开发经验(例如Java、.NET)学习Django也是非常容易的。

    2022年9月7日
    0

发表回复

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

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