咨询一个问题,如图,sentinel源码中,往map中添加值为什么要这样写?

新手上路,请多包涵

image.png

如图,在sentinel源码中,往map中添加值的时候,为什么要这样写?

阅读 1.2k
1 个回答

主要是用来解决迭代稳定性问题。
意思就是,你如果put到chainMap中,同时有其它线程对于chainMap进行读取,那么就会导致读取到修改中状态的值。
而这段代码就是用来解决中问题的,只有在最后进行chainMap=newMap 对于其它线程来说,本次修改才是可见的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题