Let's say I have a static int
that affects behaviour of the class.
class A{
public static int classFlag = 0;
private int myFlag = 0;
public void doSomething(){
if(myFlag != classFlag){
myFlag = classFlag:
}
/*myFlag-dependent behaviour*/
}
}
There's exactly one thread in the system that changes classFlag
, and /*myFlag-dependent behaviour*/
does not require that an update to classFlag
is immediately visible to all threads.
I would therefore like to keep the classFlag
non-volatile to avoid introducting a costly and completely unnecessary memory barrier.
Can I rely on an update to classFlag
being eventually visible?