悲观锁与乐观锁

这一生的挚爱 提交于 2020-03-11 07:33:51

1、悲观锁并发控制方案,就是在各种情况下都上锁,上锁之后,就只有一个线程可以操作这些内容了。在不同的情况下可以设置不同的锁,比如:行级锁,表级锁。
2、乐观锁并发控制方案,是不加锁的,写入的时候会判断当前数据的版本号跟es中的版本号是否相同,如果相同就直接写入;如果版本号不相同,说明数据已经被其他线程修改过了,此时该线程会从es中重新读取最新版本的数据,再次执行逻辑处理,然后重复以上流程。
-----------------------------------------------------------------------------------------------------------
悲观锁与乐观锁的优缺点:
1、悲观锁的优点:方便,直接加锁,对应用程序来说,透明,不需要做额外的操作。
缺点:并发能力很低,同一时间,只能有一条线程操作数据。
2、乐观锁的优点:并发能力很高,不给数据加锁,可以大量线程并发操作。
缺点:麻烦,每次更新数据的时候,都要先对比版本号,然后可能需要重新加载数据,再次执行逻辑处理,再写;这个过程可能要重复很多次。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!