215-乐观锁和悲观锁

一、乐观锁
1.什么是乐观锁?
乐观锁就是总是认为不会产生并发的问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般使用版本号机制或CAS机制来实现
在这里插入图片描述
2.CAS机制
CAS是乐观锁的一种实现方式,是一种轻量级的锁
原理:线程在读取数据时不进行加锁,在准备写回数据时,先去查询原值,操作的时候比较原值是否被修改,若为被修改则写回,否则,重回新执行读取流程
在这里插入图片描述
3.乐观锁带来的问题
因为CAS操作长时间不成功的话,会导致一直自旋,相当于死循环,造成CPU消耗过大
二、悲观锁
1.什么是悲观锁?
悲观锁总是假设最坏情况,每次取数据时都认为其他线程会修改数据,所以都


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部