码迷,mamicode.com
首页 > 其他好文 > 详细

乐观锁和悲观锁

时间:2020-10-12 20:32:28      阅读:21      评论:0      收藏:0      [点我收藏+]

标签:比较   阻塞   判断   冲突   适用于   导致   应用   共享资源   情况下   

悲观锁
总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。
乐观锁
总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。乐观锁适用于多读的应用类型,这样可以提高吞吐量。
使用场景
乐观锁适用于写比较少的情况下(多读场景),即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果是多写的情况,一般会经常产生冲突,这就会导致上层应用会不断的进行尝试,这样反倒是降低了性能,所以一般多写的场景下用悲观锁就比较合适。

乐观锁和悲观锁

标签:比较   阻塞   判断   冲突   适用于   导致   应用   共享资源   情况下   

原文地址:https://blog.51cto.com/14289397/2541281

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!