这几天为了准备面试在看一些以前不算了解的知识,然后就看到了分布式锁。
那我想想锁应该有几个特性吧
1.能保证只有一个线程持有锁
2.要重入才能算好锁
3.解锁的必然是用锁锁了的线程
ps:如果有不对的指出一下 xiexie
那回到主题,现在 redisson 和很多博客上的锁都不会跨服务的,比如我们曾经 Aservice-》 Bservice 的时候 Aservice 使用了锁,Bservice 也使用了同一把锁,这就出了个问题了因为是一把锁,如果没有重入的特性的话将会发生死锁。为什么现在都没这样的实现呢?是因为业务场景是不会出现跨服务使用同一把锁的场景吗? ps:想想好像也有几分道理
那我想想锁应该有几个特性吧
1.能保证只有一个线程持有锁
2.要重入才能算好锁
3.解锁的必然是用锁锁了的线程
ps:如果有不对的指出一下 xiexie
那回到主题,现在 redisson 和很多博客上的锁都不会跨服务的,比如我们曾经 Aservice-》 Bservice 的时候 Aservice 使用了锁,Bservice 也使用了同一把锁,这就出了个问题了因为是一把锁,如果没有重入的特性的话将会发生死锁。为什么现在都没这样的实现呢?是因为业务场景是不会出现跨服务使用同一把锁的场景吗? ps:想想好像也有几分道理