多线程之乐观悲观锁
Posted huayuxiaoxiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程之乐观悲观锁相关的知识,希望对你有一定的参考价值。
乐观锁:认为数据修改产生冲突的概率并不大,所以不会先获取锁,一般都是使用版本号或者时间戳来标记,若A和B同时修改数据,当A修改完毕的同时将时间戳也替换为自己修改的时间戳,则B去修改时就会发现此条数据已经被修改过,则此次B则无法修改
优点:不对数据加锁,只有在对数据进行修改操作时才会进行校验不会影响服务器性能,适用于查询较多的业务场景
确定:因为是用过人为去操控的,如果有其余非人为操控的事物混入则可能会发生一些错误
悲观锁:认为数据经常性的出现变动,会在修改前获取锁,使用其余事物从而不能修改数据
优点:悲观锁利用数据库中的锁机制来实现数据变化的顺序执行,锁定指定的数据行,适用于修改较为频繁的应用场景
缺点是:一旦加锁以后,其他事物不能对加锁数据进行除查询以外的所有操作,如果当前事物执行周期较长,其他事物就会一直等待,影响性能。
以上是关于多线程之乐观悲观锁的主要内容,如果未能解决你的问题,请参考以下文章