一分钟让你了解什么是乐观锁和悲观锁

作为一个开发无论在什么场景只要涉及到并发的项目,就绕不开各种各样的锁,我们今天来简单聊一下乐观锁和悲观锁

什么是乐观锁?什么又是悲观锁?


顾名思义,就是以乐观或者悲观的方式去操作数据。


乐观锁:


从来有一个人特别的乐观,天生的乐观者,干什么都是大大咧咧的,吃饭也不管有没有毒就吃。类似于这样的操作数据方式就是乐观锁,总是认为别人不会操作他的数据,就去操作数据,在提交的时候,根据固定的信息去检查一下,一般就是加version去查询数据,如果发现数据被其他人修改了,本次就不更新数据。


悲观锁:


从来有一个人特别的悲观,天生的悲观者,干什么都是需要小心翼翼的,吃饭必须先验验毒,看看有没有毒害他。类似于这样的操作数据方式就是悲观锁,总是认为别人会操作他的数据,操作数据之前为了确保安全,就先先加锁,等使用完了,就释放这个锁。


乐观锁和悲观锁两个没有绝对的好和不好,只是看适用的情况下把。


如果别人不经常谋害(更新数据不频繁),就适用乐观锁,相反,就是悲观锁。