悲观并发 乐观并发 Entity Framework Core中的并发处理

悲观并发策略

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

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

乐观并发策略

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

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

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

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

上一篇:解决ios手机上传竖拍照片旋转90度问题


下一篇:3.3. 轻量级的迁移方式(Core Data 应用程序实践指南)