1、悲观锁
悲观锁假设最坏的情况(如果果你不锁门,那么捣蛋鬼就会闯入并搞得一团糟),只有在确保其他线程不受干扰(获得正确的锁)的情况下才能执行。
一般实现如独占锁等。
安全性更高,但中低并发性效率更低。
2、乐观锁
乐观锁通过冲突检查机制判断更新过程中是否存在其他线程干扰。如果存在,操作将失败,重试(也可以不重试)。
CAS等常见实现。
一些乐观锁削弱了一致性,但在中低并发性下效率大大提高。
以上就是java并发模型中两种锁的介绍,希望对大家有所帮助。更多Java学习指路:
推荐操作环境:windows7系统、java10版,DELL G3电脑。