我正在浏览一些查看同步方面的代码片段。我相信锁定发生在对象上。在 java 的情况下,我们只有对对象的引用。Java 应该使用引用来获取对象并锁定它。
如果引用恰好为空会发生什么?我觉得这会打破。如果这要工作,那么锁定也需要在引用上发生(这让我很失望)。有人可以为我澄清这一点。
synchronized (formatters) {
if(formatters == null) {
prepareCache(feedId);
}
}