瓜子二手车 一面 最新 后端校招面试题

瓜子二手车(一面)

1. 分布式锁为什么使用redisson而不是直接使用setnx,redisson有什么优势吗?

相较于直接使用 SETNX,Redisson 有以下优势:

  • 可重入锁:Redisson 支持可重入锁,这意味着同一线程在持有锁的情况下可以多次获取该锁而不会产生死锁,释放锁时也只需相应地释放相同次数。但使用 SETNX 实现可重入锁相对复杂,需要额外的逻辑来记录线程信息和重入次数。

RLock lock = redisson.getLock("myLock");
// 第一次获取锁
lock.lock();
try {
    // 业务逻辑
    // 可重入,再次获取锁
    lock.lock();
    try {
        // 更多业务逻辑
    } finally {
        // 释放第二次获取的锁
        lock.unlock();
    }
} finally {
    // 释放第一次获取的锁
    lock.unlock();
}
  • 公平锁:Redisson 提供公平锁的实现,保证多个线程按照请求锁的顺序依次获得锁,避免某些线程长时间等待。使用 SETNX

你可能感兴趣的:(互联网大厂面试题,java,开发语言,面试,spring,boot)