乐观锁,相信冲突是低概率事件,那么在commit时才进行检查。
    做法:
          1) 取数据时同时获取最后更新的时间戳或版本号。
          2) 再更新前,用锁记录的方式获取当前时间戳或版本号。
          3)若无法锁定,表示正被修改,放弃操作,要求用户重新查询。
          4)若可以锁定,比较时间戳或版本号。不同则按 3)进行操作,相同则更新记录,同时修改时间戳或版本号

 

 

悲观锁, 认为冲突很可能发生,不希望自己的修改作废。那么在取数据时加锁。
  做法
  1) 取数据时,锁记录的方式获取修改标志,若可以修改则设定为修改中。
  2)修改数据后,或放弃修改后,更新修改标志为可以修改。

 

---------------------------------------------------------------------------------------------------------------------------------------------------------