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 锁,直到事务结束才释放。

      

      

  • 相关阅读:
    iOS 日历控件
    iOS签发者无效
    Swift3
    GitHub管理代码-随笔
    iOS10 适配问题-Xcode8
    iOS 性能调试
    bug
    贝塞尔曲线(UIBezierPath)属性、方法汇总
    webView 自适应高度 document.body 属性
    iOS-集成支付宝支付、微信支付简单总结
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12820772.html
Copyright © 2011-2022 走看看