zoukankan      html  css  js  c++  java
  • 三段锁协议

      由于并发,如果不加以控制,就会出现以下问题:丢失修改,不可重复读,幻读(读脏数据)。

      解决方法:

      1)一级封锁协议

      做法:修改对象之前必须加X锁,直到事务结束才能释放。

      好处:可防止丢失修改。

      2)二级封锁协议

      做法:在一级锁的基础上,读取数据之前必须先对其加 S 锁,读完后即可释放 S 锁。

      事务T1对C进行修改,加 X锁;事务T2想读C,加 S锁,这个时候因为已经有 X锁,无法加锁。直到 T1修改完后,释放 X锁,才可以加

      S锁。

      避免了读脏数据。

      3)三级封锁协议

       为了解决 不可重复读的问题。

      出现重复读的情况:事务 T1 对 A读数据之前,加 S锁,然后读完再释放。然后事务T2对A加 X锁,修改了A。事务T1并没有结束,然后

      为了验算,再次读,已经不能读到之前的数据了。

      在一级锁的基础上,读取数据之前必须先对其加 S 锁,直到事务结束才释放。

      

      

  • 相关阅读:
    数独游戏 C++ 回溯法
    DirectX 90 3D 网格一
    DirectX 90 3D SetRenderState 设置渲染状态
    DirectX90 3D 字体
    DirectX 90 3D 外接体
    VS2005下配置OGRE
    DirectX 90 3D 网格二
    Java反射机制
    UBUNTU下安装 APACHE+PHP+MYSQL文本服务器!
    关于那个SMTP类及一个例子
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12820772.html
Copyright © 2011-2022 走看看