Volatile piggyback. Isso é suficiente para a visibilidade?

Trata-se de cavalitas voláteis. Objetivo: Quero alcançar uma visibilidade leve de Vars. A consistência de a_b_c não é importante. Eu tenho vários vars e não quero torná-los todos volátei

Este código é seguro?

class A {
    public int a, b, c;
    volatile int sync;

    public void setup() {
        a = 2;
        b = 3;
        c = 4;
    }

    public void sync() {
        sync++;
    }
}

final static A aaa = new A();

Thread0:
aaa.setup();
end

Thread1:
for(;;) {aaa.sync(); logic with aaa.a, aaa.b, aaa.c}

Thread2:
for(;;) {aaa.sync(); logic with aaa.a, aaa.b, aaa.c}