Java教程

乐观锁和悲观锁

本文主要是介绍乐观锁和悲观锁,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 


 

 

 

 

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。

即上锁------>操作------->解锁以便给下一个人使用

 


 

 

 

乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量

 

比如,第一个人付款成功,此时余额的版本号就会变成v1.1,第二个人去付款的时候,发现自己手上持有的版本号是v1.0 ,不是最新的v1.1,此时他就会替换成v1.1版本后再进行判断余额是否足够,从而避免超卖问题。

这篇关于乐观锁和悲观锁的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!