DayDayUp:DayDay面试题
学习内容:乐观锁和悲观锁的区别
学习时间:
- 今天晚上
学习产出:
– 乐观锁:对数据冲突保持一种乐观的态度,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。
- 特点:是一种并发类型的锁,本身不会加锁而是通循环重试CAS进而实现锁的功能。效率高,但是数据更新失败增加了,因此业务容易失败。
– 悲观锁:每次去拿数据的时候以一种悲观的态度,认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。
- 特点:可以保证数据的安全性。每次对数据进行操作的时候先要加锁,然后对进行数据操作,之后解锁。而加锁释放锁的这个过程中会造成消耗,所以性能不高