悲观锁和乐观锁的区别和应用场景

悲观锁和乐观锁的区别和应用场景

https://zm8.sm-tc.cn/?src=l4uLj8XQ0J2TkJjRnIybkdGRmovQpryXmpG5mpGY0J6Ni5ack5rQm5qLnpaTjNDIys%2FPzMbOzg%3D%3D&uid=377d4216269bf3d8d359b1c664998fb5&hid=7eacc5eabee7f2317120a91afe7cb86b&pos=2&cid=9&time=1503321001497&from=click&restype=1&pagetype=0000000002000408&bu=web&query=%E4%B9%90%E8%A7%82%E9%94%81%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF&mode=&v=1&uc_param_str=dnntnwvepffrgibijbprsvdsdichei

摘要:

在实际生产环境里边,如果并发量不大且不允许脏读,可以使用悲观锁解决并发问题;但如果系统的并发非常大的话,悲观锁定会带来非常大的性能问题,所以我们就要选择乐观锁定的方法.

两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果经常产生冲突,上层应用会不断的进行retry,这样反倒是降低了性能,所以这种情况下用悲观锁就比较合适。

猜你喜欢

转载自zjjndnr.iteye.com/blog/2390658