乐观锁和悲观锁

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁类似于我们在多线程资源竞争时添加的互斥锁,容易出现死锁现象,采用不多。

乐观锁(Optimistic Lock)并不是真实存在的锁,每次去拿数据的时候都认为别人不会修改,而是在更新的时候可以根据版本号,判断此时的版本号是否是之前查询出的版本号,如果相同,表示没人修改,可以更新,否则表示别人抢过资源,不再执行更新。

posted @ 2018-12-18 17:05  我来搬砖了  阅读(101)  评论(0编辑  收藏  举报