恐怕我已经知道答案了。我有一个处理服务调用和缓存的类。为了避免使用同一个请求多次调用服务,我当然可以在代码块周围使用锁,但是这些方法中有很多都有不同的参数来构成缓存键。等待一个锁代码块执行,而它可能是一个完全不同的缓存键(或多个不同的缓存键),这似乎是一种耻辱。
我知道我可以对缓存键字符串本身进行锁定,但这是一个禁忌,因为该字符串可能会在任何地方弹出。
因此,我可以在没有锁的情况下对服务执行潜在的不必要调用,或者通过等待锁在方法中添加潜在的不必要延迟。
这些是我唯一的两个选择还是还有另一个?
干杯