zoukankan      html  css  js  c++  java
  • 悲观并发 乐观并发 Entity Framework Core中的并发处理

    悲观并发策略

    A用户发起一个请求   开启了事务 查询到了某一条数据 进行修改     在A提交事务之前 其他人都不能对这条数据进行修改

    这种策略最常见的一个问题就是死锁  比如A修改X记录,B修改Y记录,他们分别锁死了这两条记录,但是X和Y记录是相关的,A修改X的时候发现需要修改Y,但是Y又被锁定了,B修改Y的时候需要修改X,但是X也已经被锁定了,这样就产生了死锁问题

    产生死锁的条件   

    1.一定基于多线程 

    2.锁内部用到了其他加锁的资源  

    乐观并发策略

    A用户发起一个请求   开启了事务 查询到了某一条数据 进行修改     在A提交事务之前 其他人也可以对这条数据进行修改      但是A提交事务的时候 会判断这条记录是否给修改 如果给修改过 就报错   

    可以通过给实体加版本号实现    在提交事务的时候  会对比当前修改后的实体版本号跟数据库中实体的版本号  只有提交版本号大于数据库的记录版本号才会修改成功   否则就抛出异常

    http://www.cnblogs.com/GuZhenYin/p/7761352.html

    https://blog.csdn.net/qq_34337272/article/details/81072874

  • 相关阅读:
    ASP.NET Core学习——7
    ASP.NET Core学习——6
    ASP.NET Core学习——6
    ASP.NET Core学习——5
    ASP.NET Core学习——4
    平衡的括号(名字怪怪的~)
    找复合单词
    卡片游戏
    Ducci 序列
    卡片游戏O(∩_∩)O
  • 原文地址:https://www.cnblogs.com/jiangchengbiao/p/10454576.html
Copyright © 2011-2022 走看看