堆中的内存可见性

问题描述

拍摄不同步的地图

Map<Long,Long> map = new HashMap<>();

当我们从一个线程执行map.put(1,2)时,其他线程是否可能看不到此更新值?我了解如何缓存原语和引用,因此,在访问它们时需要进行同步。但是对象本身内部的值呢?

所以说一个线程这样做:

map.put(1,2)

其他线程做

map.get(1)

此线程是否有可能看到null(假设此线程具有对map的更新引用)?我猜想它应该总是看到更新后的值,因为该对象不能被任何线程缓存。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)