Your question
DefaultRegistryServer#handlePublish(...)方法中提到putIfAbsent和config.newVersion()需要是原子操作, 所以需要加锁。按照我的理解,if (config.getConfig().putIfAbsent(meta.getAddress(), meta) == null) 这一步已经是原子操作了,相应地保证了 config.newVersion() 不会被执行多次,是不是这里不需要加锁呢?
Your scenes
Describe your use scenes (why need this feature)
Your advice
Describe the advice or solution you'd like
Environment
- Jupiter version: Jupiter 1.3.1
- JVM version (e.g. java -version): java 8
- OS version (e.g. uname -a): Windows
- Maven version: 3.6.0
- IDE version: IDEA 2021