乐观锁,每次拿数据时都认为别人不会修改数据,因此不会上锁,可是在更新的时候会判断一下在此期间别人有没有更新这个数据。可使用版本号机制和CAS算法实现。算法
乐观锁适用于写比较少的状况,这样能够省去锁的开销,加大系统的吞吐量。若是常常发生冲突,上层应用会不断的进行retry,这样反而是下降了性能,因此在这种状况下用悲观锁就比较合适。性能
悲观锁,每次去拿数据的时候都认为别人会修改,因此每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。数据