大家好,今天小编关注到一个比较有意思的话题,就是关于乐观锁面试技巧的问题,于是小编就整理了3个相关介绍乐观锁面试技巧的解答,让我们一起看看吧。
悲观锁和乐观锁分别在什么条件下使用?
悲观锁,锁如其名,他对世界是悲观的,他认为别人访问正在改变的数据的概率是很高的,所以从数据开始更改时就将数据锁住,知道更改完成才释放。
乐观锁,他对世界比较乐观,认为别人访问正在改变的数据的概率是很低的,所以直到修改完成准备提交所做的的修改到数据库的时候才会将数据锁住。完成更改后释放。
悲观锁会造成访问数据库时间较长,并发性不好,特别是长事务。
乐观锁在现实中使用得较多,厂商较多***用。
乐观锁***原理?
数据在一般情况下不会造成冲突,别人不会去修改,所以在访问记录前不会加排它锁。但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号,时间戳来等记录。因为不加锁,所以乐观锁在多读的情况下,可以极大的提升我们的吞吐量。
数据库高并发下乐观锁的原理?
在高并发下,经常需要处理SELECT之后,在业务层处理逻辑,再执行UPDATE的情况。 若两个连接并发查询同一条数据,然后在执行一些逻辑判断或业务操作后,执行UPDATE,可能出现与预期不相符的结果。 在不使用悲观锁与复杂SQL的前提下,可以使用乐观锁处理该问题,同时兼顾性能。 场景模拟: 当id每使用一次,use_count要加1。当use_count大于1000时,这个id就不能在被使用了(换句话说 无法从数据库中查出)。SELECT * FROM table WHERE id=123456 and use_count
到此,以上就是小编对于乐观锁面试技巧的问题就介绍到这了,希望介绍关于乐观锁面试技巧的3点解答对大家有用。