首页 > 其他分享 >悲观锁与乐观锁

悲观锁与乐观锁

时间:2023-10-06 20:16:24浏览次数:28  
标签:别的 乐观 线程 悲观 执行 数据

乐观锁:顾名思义,乐观锁就是持比较乐观态度的锁。就是在操作数据时非常乐观,

认为别的线程不会同时修改数据,所以不会上锁,但是在更新的时候会判断在此期间
别的线程有没有更新过这个数据。

悲观锁:就是持悲观态度的锁。就在操作数据时比较悲观,每次去拿数据的时候认
为别的线程也会同时修改数据,所以每次在拿数据的时候都会上锁,这样别的线程想拿
到这个数据就会阻塞直到它拿到锁。
乐观锁和悲观锁的区别
悲观锁:什么时候都会出问题,所以一直直监视着,没有执行当前步骤完成前,不让任何
线程执行,十分浪费性能! -般不使用!
乐观锁:只有更新数据的时候去判断一下,在此期间是否有人修改过被监视的这个数据,
没有的话正常执行事务,反之执行失败!

 悲观锁与乐观锁的最终目的都是为了保证线程安全

标签:别的,乐观,线程,悲观,执行,数据
From: https://www.cnblogs.com/wakenight/p/17744913.html

相关文章

  • 乐观锁的原理解析
    CAS(比较与交换,Compareandswap)是一种有名的无锁算法,它是乐观锁的一种实现方式。所以在进行CAS原理分析的时候,我们先来了解什么是乐观锁,什么是悲观锁~乐观锁与悲观锁乐观锁和悲观锁是在数据库中引入的名词,但是在我们Java的JUC里面的锁也引入类似的思想!我们来看看两种锁的概念......
  • 乐观锁和悲观锁
    乐观锁:概念:悲观想法,每次去拿数据的时候都会认为别人会进行修改,所以在每次拿数据的时候都会进行上锁。这样别人想要拿数据的时候就会被挡住,直至悲观锁被释放,悲观锁中的额共享资源每次都只能给一个线程使用,其他线程堵塞,直至用完后再将资源转让给其他线程。效率:处理加锁解锁的机制会......
  • 【面试题精讲】Mysql如何实现乐观锁
    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top首发博客地址文章更新计划系列文章地址在MySQL中,可以通过使用乐观锁来实现并发控制,以避免数据冲突和并发更新问题。乐观锁是一种乐观的思想,它假设并发操作不会导致冲突,只......
  • 乐观锁和悲观锁问题
    【BAT面试题系列】面试官:你了解乐观锁和悲观锁吗? 乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景,以及可能遇到的面试官追问,希望能够帮助你打动面试官。前言乐观锁和悲观锁问题,是出现频率比较高的面......
  • C# 乐观锁和悲观锁
    1.概要乐观锁(OptimisticLocking)乐观锁的核心思想是假设在大多数情况下,资源不会发生冲突,因此允许多个用户或线程同时读取和修改资源。只有在真正发生冲突的时候才会进行冲突解决。乐观锁的工作原理如下:版本标识或时间戳:在资源中引入一个版本标识(Version)或时间戳(Timestamp)字段......
  • mybatisplus中设置乐观锁,首先需要在表结构中添加一个字段表示乐观锁,之后再domain中对
    2023-09-10version字段表示乐观锁 在表结构中添加一个字段表示乐观锁packagecom.hh.domain;importcom.baomidou.mybatisplus.annotation.TableLogic;importcom.baomidou.mybatisplus.annotation.TableName;importcom.baomidou.mybatisplus.annotation.Version;impo......
  • 在代码中配置乐观锁插件和分页插件
    在代码中配置乐观锁插件和分页插件在代码中配置乐观锁插件和分页插件,您可以按照以下步骤进行操作:配置乐观锁插件:乐观锁插件是MyBatisPlus提供的功能之一,您可以在配置类中进行配置。假设您使用的是SpringBoot,可以创建一个配置类(如MyBatisConfig)并添加@Configuration注解,......
  • 乐观锁的配置与实现
    首先第一步:在数据表中添加version字段: 第二步:在实体类中添加对应字段:并加上@Version注解第三步:配置乐观锁拦截器实现锁机制对应的动态sql语句拼装: 第四步测试: ......
  • 悲观锁和乐观锁
    目录一概念1.1什么是并发控制1.2悲观锁1.3乐观锁1.4悲观锁乐观锁使用场景二MySQL实现悲观锁三django实现悲观锁乐观锁案例3.1django实现悲观锁3.2乐观锁普通版,秒杀-->库存还有,有的人就没成功3.3升级版一概念无论是悲观锁还是乐观锁,都是人们定义出来的概念,仅仅是一......
  • The database operation was expected to affect 1 row(s), but actually affected 0
    Thedatabaseoperationwasexpectedtoaffect1row(s),butactuallyaffected0row(s);解决乐观并发1.乐观并发EFCore实现乐观并发,假定并发冲突相对较少。与悲观方法(即先锁定数据,然后才继续修改数据)不同,乐观并发不需要锁定,而是安排数据修改在保存时失败(如果数据自......