Skip to content

DefaultRegistryServer#handlePublish(...)并发问题 #108

@anyoptional

Description

@anyoptional

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions