当数组变量是易失性的时,我们是否需要同步对数组的访问?
2022-09-02 19:50:03
我有一个类,其中包含对数组的易失性引用:
private volatile Object[] objects = new Object[100];
现在,我可以保证,只有一个线程(调用它)可以写入数组。例如writer
objects[10] = new Object();
所有其他线程将仅读取该线程写入的值。writer
问题:我是否需要同步此类读取和写入以确保内存一致性?
我想,是的,我应该。因为从性能的角度来看,如果 JVM 在写入数组时提供某种内存一致性保证,那么它就没有用了。但我不确定这一点。在文档中没有找到任何有用的东西。