乐观锁,每次拿数据时都认为别人不会修改数据,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据。可以使用版本号机制和CAS算法实现。
乐观锁适用于写比较少的情况,这样可以省去锁的开销,加大系统的吞吐量。如果经常发生冲突,上层应用会不断的进行retry,这样反而是降低了性能,所以在这种情况下用悲观锁就比较合适。
悲观锁,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。
乐观锁,每次拿数据时都认为别人不会修改数据,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据。可以使用版本号机制和CAS算法实现。
乐观锁适用于写比较少的情况,这样可以省去锁的开销,加大系统的吞吐量。如果经常发生冲突,上层应用会不断的进行retry,这样反而是降低了性能,所以在这种情况下用悲观锁就比较合适。
悲观锁,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。
转载于:https://my.oschina.net/u/4141148/blog/3071709