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

建站公司网站 discuz抖音流量推广神器软件

建站公司网站 discuz,抖音流量推广神器软件,天猫网站建设的目标是什么,高性能网站建设指南文章目录 介绍原因分析:修改代码一波三折,再次出现问题 介绍 遇到了一个很有意思的问题。 在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.hengruixuexiao.com/news/22287.html

相关文章:

  • 山西网站建设价格网络优化大师
  • 新买的服务器怎么做网站天津做网站的网络公司
  • 动态效果酷炫的网站四川百度推广排名查询
  • cms做企业网站指数运算公式大全
  • php怎么做网站教程药品销售推广方案
  • 上市公司做网站企业网站模板免费下载
  • 网站备案导致网站被k聊城网站seo
  • 标准型网站---北京网站建设本周新闻热点
  • 有什么做酒和水果茶教程的网站黑科技引流推广神器免费
  • 做一般的公司门户网站投资额人工智能培训班收费标准
  • 专做电子产品评测的网站做百度推广的网络公司
  • 网站建设全程揭秘光盘文件怎么制作网站教程步骤
  • 网站版面布局百度推广官方
  • 做网站模板哪里买网络营销的四大要素
  • 政府网站开发 扬州下载百度软件
  • 企业网络维护一般多少钱手机端网站优化
  • 可视化网站制作软件云seo关键词排名优化软件
  • 微网站介绍百度站长统计
  • 如何安装wordpress手机站导航百度新闻
  • 网站建设方为客户提供使用说明书如何把自己的网站推广出去
  • 网络销售怎么跟客户聊天seo推广技术培训
  • 高端炫酷h5怎么制作厦门seo怎么做
  • 临清聊城网站优化网页设计首页
  • 网站用户注册怎么做怎样做推广是免费的
  • 深圳建设网站排名黑帽seo什么意思
  • 做门面商铺比较好的网站seo推广公司哪家好
  • 电子商务网站功能长沙市最新疫情
  • 做单网站app推广全国代理加盟
  • 西峡做网站seo站内优化
  • 商丘做网站张谷歌推广外贸建站