关于Apache RocketMQ,问个rocketmq源码的问题

[版本] 4.9.2 [问题] 为什么NettyRemotingClient中,《NameServer地址列表namesrvAddrList》和《被选中NameServer地址namesrvAddrChoosed》两个变量要用AtomicReference?对这两个变量的访问都是get和set,并没有CAS操作。 多线程访问的下,似乎用volatile修饰就可以了。 图片.png 图片.png 图片.png

展开
收起
wenti 2023-01-08 16:57:34 245 分享 版权
1 条回答
写回答
取消 提交回答
  • volatile 又不具有 原子性 不能保证线程安全——该回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群“

    2023-01-08 20:39:02
    赞同 展开评论

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理