首页 > 其他分享 >使用悲观锁防止超卖问题

使用悲观锁防止超卖问题

时间:2024-01-22 16:13:09浏览次数:26  
标签:悲观 System println getSortNum 防止 device 超卖 out

记录一次使用悲观锁防止超卖的demo实例。环境配置可以参照我上篇笔记

此处只展示核心代码

 代码

//先查库存
Device device = deviceMapper.selectByIdUpdate(3); // 核心为该行代码
//Thread.sleep(3000);
if (device.getSortNum() > 0) {
System.out.println("当前库存是:" + device.getSortNum());
int i = device.getSortNum() - 1;
device.setSortNum(i);
Integer integer = deviceMapper.updateById(device);
Device device1 = deviceMapper.selectById(3);
System.out.println("抢到商品,当前减后库存是:" + device1.getSortNum());
System.out.println("成功");
} else {
System.out.println("当前没抢到线程是:" + Thread.currentThread().getName());
System.out.println("没有库存了");
}

 其实只是在第一行查询那添加一个for update进行行锁的控制

 可参照链接:https://blog.csdn.net/cxclll/article/details/130602547

以上内容为我学习笔记,如有问题请联系我删除

标签:悲观,System,println,getSortNum,防止,device,超卖,out
From: https://www.cnblogs.com/qwg-/p/17980260

相关文章

  • 如何编写一个好的测试用例?才能防止背黑锅
    五星上将麦克阿瑟曾经说过“老夫干测试,测试用例不过删用例!“一让我们来讲一个故事今天和女朋友吵架了,(假设你有女朋友)。今晚又是一个人睡沙发,这天晚上,你躺在沙发上,夜不能寐决定学习一下这个事情——如何编写好的测试用例?测试用例什么是测试用例?在这之前,思考一个问题,下面这个简单的QQ......
  • 如何防止订单二次重复支付?
    1背景用户第一次点击下单操作时,会弹出支付页面待支付。但可能存在用户在支付时发现账户金额不够,后续选择:其他渠道支付(如微信支付转为支付宝支付)或采用不同终端来支付(如由电脑端支付转为app端支付)这时就面临二次支付场景。2方案1由于用户支付的时候的支付页面是html文件或是一个支......
  • 一个小小的乐观锁、悲观锁也能扯这么多
    前言:我们一个普通的下单接口通常都包含如下三步操作,如果下单不成功的话将会返回给用户一个提示下单失败。查询库存(selectstockfromxxwhereid=xx)扣减更新库存(updatexxsetstock=stock-1whereid=xx)生成订单如果是只有一个用户来请求下单接口,那么上述的操作毫无疑问......
  • 信息泄露的多种形式:如何识别并防止内部威胁?
    在这个信息爆炸的时代,数据安全问题已经成为企业和政府机构不能忽视的挑战。尤其是来自内部的安全威胁,给企业的信息安全形势带来更多严重性。针对企业应对内部威胁,有必要了解信息泄露的多种形式以及如何识别并防止。内部威胁主要来源于职员的不规范操作或恶意泄露。为提早发现......
  • 公司电脑怎么加密码防止文件外泄?
    为了保护公司信息的安全,防止文件外泄,您可以通过以下几个步骤加强电脑的安全措施:设置BIOS密码:在电脑启动时,进入BIOS设置,为系统设置一个密码。这样,没有密码的情况下,他人无法启动电脑。操作系统的用户与权限管理:为电脑创建多个用户账户,并为不同用户设置不同的权限。例......
  • 确保你的数据库安全:如何防止SQL注入攻击
    最近,越来越多的组织和公司受到SQL注入攻击的困扰。这种攻击可以导致数据库中的敏感信息泄露,破坏数据完整性,甚至可能导致整个系统崩溃。如果您是一名数据库管理员或网站管理员,您需要了解如何保护您的数据库免受SQL注入攻击的威胁。在本文中,小德将介绍什么是SQL注入攻击,以及如何预防......
  • 如何防止U盘文件被拷贝?怎样保护U盘文件的安全?
    如何防止U盘文件被拷贝?怎样保护U盘文件的安全?在数字化时代,U盘已经成为我们日常生活和工作中不可或缺的存储工具。但是,随之而来的是U盘文件安全性的隐患。如何保护U盘文件的安全?下面,我们将从多个方面为你详细介绍,让你的U盘文件得到最好的保护。一、使用加密软件(例如:安企神软件)使用加......
  • 企业防止数据泄露的措施有什么方法吗?
    随着信息技术的飞速发展,数据已经成为现代社会最为重要的资源之一。然而,随之而来的数据安全问题也日益突出,数据泄露事件频发,给企业和个人带来了巨大的损失。为了保护数据安全,防止数据泄露,人们采取了各种措施,如加密技术、访问控制、匿名化技术等。但是这些技术都需要专业知识来正确......
  • 企业防止泄密要注意哪些事项和要求
    在现代商业社会中,数据就是生命线。它是组织的价值和成就的衡量标准。然而,如果这些关键和敏感的数据落入错误的手中,它的价值可能会立刻变成威胁。对于任何企业来说,防止数据泄露是一个需要持续关注和严格执行的任务。从确立严格的权限管理,到采取有效的数据加密措施,从监控外设使用,到......
  • php redis 悲观锁
    悲观锁(PessimisticLock),顾名思义,就是每次处理redis数据都以最悲观的场景展开,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做......