一.乐观锁和悲观锁的概念
悲观锁:
很悲观,认为什么时候都会出问题,所以在每次拿数据的时候都会上锁其他线程想要访问数据时候,都需要阻塞挂起。Java中synchronized的思想也是悲观锁。
乐观锁:
很乐观,认为什么时候都不会出现问题,更新数据的时候去判断一下,在此期间是否有人修改过这个数据。
二.Redis监视测试watch
正常执行成功
测试多线程修改值,使用watch可以当做乐观锁的操作
如果修改失败,获取最新的值就好 unwatch,之后再次监视
悲观锁:
很悲观,认为什么时候都会出问题,所以在每次拿数据的时候都会上锁其他线程想要访问数据时候,都需要阻塞挂起。Java中synchronized的思想也是悲观锁。
乐观锁:
很乐观,认为什么时候都不会出现问题,更新数据的时候去判断一下,在此期间是否有人修改过这个数据。
正常执行成功
测试多线程修改值,使用watch可以当做乐观锁的操作
如果修改失败,获取最新的值就好 unwatch,之后再次监视