目录
乐观锁与悲观锁
乐观锁:每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会 进行加锁,但是在更新数据的时候需要判断该数据是否被别人修改过。如果数据被其他线程修改,则不进行数据更新,否则,更新数据。由于数据没有进行加锁,期间该数据可以被其他线程进行读写操作。
悲观锁:它总是认为肯定会出现问题,无论干什么都会上锁,再去操作!
乐观锁的实现方式
- 取出记录时,获取当前的version
- 更新时,带上version
- 执行更新时,set version = new Version where version = oldVersion
- 如果version不对,就会更新失败