1.多实例模式,众所周知Reentrantlock和synchronized都是对象锁,那假如通过scope注解设置了spring模式为多例模式,那多个请求同时进入不同的实例就会出现并发的问题
2.事务模式,众所周知,加上transactional注解时,会在方法前置开启事务,那假如两个请求同时进入,一个请求获取到了锁,减掉了库存,但是还没提交事务,数据库此时还是原来的库存数,这个时候释放了锁,b获取到了锁,还是读到了原来的数据,这样还是出现了并发的问题
3.集群模式,在集群模式下,多个请求进入不同的服务,同时访问共享资源,因为锁的只是服务的当前实例,每个服务都有不同的实例,就会出现并发问题