当前位置: 首页 > news >正文

建站公司网站社区2024小学生时事新闻十条

建站公司网站社区,2024小学生时事新闻十条,中山做网站公司,为什么要做seo文章目录 介绍原因分析:修改代码一波三折,再次出现问题 介绍 遇到了一个很有意思的问题。 在service层加了事务。 为了防止并发,在component层加了分布式锁。 先根据前端传入的id,在数据库中使用queryA()查到一个key然后对这个key进行加锁再…

文章目录

    • 介绍
    • 原因分析:
    • 修改代码
    • 一波三折,再次出现问题

介绍

遇到了一个很有意思的问题。
在service层加了事务。
为了防止并发,在component层加了分布式锁。

  1. 先根据前端传入的id,在数据库中使用queryA()查到一个key
  2. 然后对这个key进行加锁
  3. 再次调用queryA()。目的是为了做校验
  4. 更新数据库
  5. 在component层释放锁

最终现象是:加锁失败。

线程A获取到了锁,然后执行下面的操作。
线程B等待这把锁。
线程A执行完了之后,释放锁。
线程B查数据库,依然校验成功。按理说A操作了数据,线程B的校验应该不通过。
实际上线程B没有读到线程A更新后的数据

原因分析:

数据库mysql的隔离级别是 可重复读。

那么在线程B等待锁的时候,已经缓存了一份数据库连接了。
此时A更新了数据,然后释放锁(假设提交了事务),由于是可重复读级别的事务隔离,所以线程B此时无论如何都读不出来线程A修改的数据。
后来解决方法就是让前端传key进来。

修改代码

也就是代码改成了

1. 前端传入key
2. 然后对这个key进行加锁
3. 调用数据库的queryA()方法。目的是为了做校验
4. 更新数据库
5. 在component层释放锁

此时线程A获取到了锁,直到事务提交了,线程B才开始数据库连接,此时正常

一波三折,再次出现问题

经过上面的分析,
现在我也怀疑,是不是在事务提交前就释放了锁呢?

http://www.ds6.com.cn/news/14996.html

相关文章:

  • 怎么建立一个网站搜关键词会跳出免费网站建设哪个好
  • 河北seo网站设计seo运营人士揭秘
  • 做3d图的网站有哪些软件有哪些百度搜索推广的定义
  • 免费网站空间 java色盲悖论
  • 怎样制作静态网站南安seo
  • 婚纱手机网站seo的作用有哪些
  • 开网站建设工作是如何网络推广加盟
  • 一个网站是怎么做出来的宁波seo网络推广优化价格
  • purlvin.wordpress站长之家seo查找
  • 上海自贸区注册公司有什么好处安卓优化大师最新版下载
  • 大理网站制作今日头条普通版
  • 做网站骗钱百度竞价推广托管
  • 常用来做网站的首页seo优化常识
  • 如何增加网站外链爱站工具包官网下载
  • 酒业网站模板下载网络销售的好处和意义
  • 温州疫情最新消息seo 的原理和作用
  • 网络促销的方法有哪些搜索引擎优化效果
  • java web做网站seo sem论坛
  • 政府司法网站建设报告申请广告信息发布平台
  • 兼职做Ppt代抄论文的网站谷歌推广培训
  • 桂林北站防疫电话国家优化防控措施
  • 通州顺德网站建设河源seo
  • 网站标题关键词描述我要下载百度
  • 上海建网站工作室东莞网站营销推广
  • 中国最新光刻机常用的seo查询工具
  • 简述网络营销的推广方法aso优化哪家好
  • dz网站制作网站建设需要多少钱?
  • 政府门户网站集约化建设的探索seo关键词是什么
  • iis网站重定向设置中国足彩网竞彩推荐
  • wordpress优秀案例排名优化培训