集群下(多个JVM),原来用synchronized(悲观锁)解决单体一人一单 会出现的问题
单体解决一人一单的问题

如上图,两个JVM,多个锁监视器。有问题
出现的问题
- 两者都进入了锁的内部,这个synchronized锁形同虚设,
- 这是由于synchronized是本地锁,只能提供线程级别的同步,每个JVM中都有一把synchronized锁,不能跨 JVM 进行上锁,
- 当一个线程进入被 synchronized 关键字修饰的方法或代码块时,
- 它会尝试获取对象的内置锁(也称为监视器锁)。
- 如果该锁没有被其他线程占用,则当前线程获得锁,可以继续执行代码;
- 否则,当前线程将进入阻塞状态,直到获取到锁为止。
- 而现在我们是创建了两个节点,也就意味着有两个JVM,所以synchronized会失效!

浙公网安备 33010602011771号