1.悲观锁:悲观锁是假设会产生并发冲突,我们通过数据库自带的锁机制,这个这个资源进行独占,只有在这个请求处理完后,其他请求才能对这个资源进行处理。在实际的生产环境中,如果并发量不打不允许脏读时可以使用这种方式;但如果系统并发分长达,悲观锁阻塞程序,照成非常大的性能问题。
2.乐观锁:乐观锁假设不会发生并发冲突,只是在提交数据的时候检查是否违反数据的完整性。乐观锁不能解决脏读的问题,乐观锁使用方案:使用一个自增长的整数表示数据的版本号,更新时检查版本号是否一致,比如当前数据的版本号为3,当我我们要更新这条数据时我们知道他的版本号要更新为4,假设版本号字段为version,我们在更新时检测version+1=4是否成立,如果不成立那么在我们修改之前该数据已经被修改过了