Preciso adicionar alguns bloqueios ou sincronização se houver apenas um segmento gravado e vários segmentos lendo?

Digamos que eu tenha um objeto global:

class Global {
   public static int remoteNumber = 0;
}

Há um encadeamento executado periodicamente para obter um novo número remoto, e atualiza-o (apenas gravação):

new Thread {
   @override
   public void run() {
       while(true) {
           int newNumber = getFromRemote();
           Global.remoteNumber = newNumber;
           Thread.sleep(1000);
       }
   }
}

E há um ou mais threads usando esse globalremoteNumber aleatoriamente (somente leitura):

int n = Global.remoteNumber;
doSomethingWith(n);

Você pode ver que eu não uso nenhum bloqueio ousynchronize para protegê-lo, está correto? Existe algum problema em potencial que possa causar problemas?

Atualizar:

No meu caso, não é realmente importante que os threads de leitura obtenham o novo valor mais recente em tempo real. Quero dizer, se houver algum problema (causado pela falta de bloqueio / sincronização) fazer com que um thread de leitura perca esse valor, isso não importa, porque ele terá chance de executar o mesmo código em breve (talvez em um loop)

Mas a leitura de um valor indeterminado não é permitida (quero dizer, se o valor antigo for 20, o novo valor atualizado é 30, mas os threads de leitura lêem um valor inexistente, digamos 33, não tenho certeza se é possível)

questionAnswers(2)

yourAnswerToTheQuestion