C# 数据库并发事物.docVIP

  • 13
  • 0
  • 约9.7千字
  • 约 31页
  • 2019-05-27 发布于江西
  • 举报
C#数据库并发之事务(乐观锁与悲观锁) 本文介绍了处理.NET中锁的6种方法,首先我们讨论一下并发性问题,然后讨论处理乐观锁的3种方法,乐观锁不能从根源上解决并发问题,因此后面我们介绍了悲观锁,最后介绍隔离级别如何帮助我们实现悲观锁,每个隔离级别都列举了示例进行说明,使得概念更加清晰。 我们为什么需要锁?   在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这就会产生冲突,这个就是著名的并发性问题。   图 1 并行性问题漫画   如何解决并发性问题?   借助正确的锁定策略可以解决并发性问题,资源被锁定后,其它进程想要访问它就会被阻止。   并发会造成什么样的冲突?   并发主要会导致四种常见的问题,详细情况请看下表。 问题 简要描述 解释 脏读取 当一个事务读取其它完成一半事务的记录时,就会发生脏读取 用户A和用户B看到的值都是5 ?用户B将值修改为2 ?用户A看到的值仍然是5,这时就发生了脏读取 不可重复读取 在每次读数据时,如果你获得的值都不一样,那表明你遇到了不可重复读取问题 用户A看到的值是5 用户B将值改为2 用户A刷新后看到的值仍然是5,这时就发生了不可重复读取 虚幻行 如果update和delete SQL语句未对数据造成影响,很可能遇到了虚幻行问题 用户A将所有值从5修改为2 用户B使用值2插入一个新记录 用户A查询所有值为2的记录,但

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档