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?