单例类的方法是否是线程安全的,方法内部是否使用了共享资源?

我有一个Singleton类,它具有一种获取锁的方法,所有线程在继续执行该方法之前都会调用该方法。然后根据Redis键的值获取锁(如果获取的锁值为1,则不是)。

我不需要同步此方法吗?

public long getLock(Item item) {
    ValueOperations ops = template.opsForValue();
    return ops.increment(item.getKey());
}

无论答案是(是/否),请说明原因。

评论