悲观锁与乐观锁

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

posted @ 2018-02-22 21:33  秦先生的客栈  Views(177)  Comments(0Edit  收藏  举报