ConcurrentHashMap中变量为什么使用final和v

2022-07-10  本文已影响0人  糯米团子123
  1. 《java并发编程实践》中提到,使用final域确保初始化安全性,初始化安全性,让不可变对象不需要同步就能自由的被访问和共享。
  2. 使用volatile修饰来保证某个变量内存的改变对其他线程即时可见。可以配合CAS实现不加锁对并发操作的支持。
    ConcurrentHashMap的get操作可以无锁,正式由于Node的元素val和指针
    next是使用volatile修饰的,在多线程环境下,A线程修改节点val或者新增节点对B线程都是即时可见的,保证了数据的一致性。
上一篇 下一篇

猜你喜欢

热点阅读