Нужно ли добавлять некоторые блокировки или синхронизацию, если записывается только один поток и читается несколько потоков?

Скажем, у меня есть глобальный объект:

class Global {
   public static int remoteNumber = 0;
}

Периодически запускается поток для получения нового номера с удаленного устройства и его обновления (только запись):

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

И есть один или несколько потоков, использующих этот глобальныйremoteNumber случайно (только чтение):

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

Вы можете видеть, что я не использую никаких замков илиsynchronize чтобы защитить это, это правильно? Есть ли потенциальная проблема, которая может вызвать проблемы?

Обновить:

В моем случае не очень важно, чтобы потоки чтения в реальном времени получали последнее новое значение. Я имею в виду, что если есть какая-либо проблема (вызванная отсутствием блокировки / синхронизации), чтобы один поток чтения пропустил это значение, это не имеет значения, потому что у него будет шанс запустить тот же код в ближайшее время (возможно, в цикле)

Но чтение неопределенного значения недопустимо (я имею в виду, если старое значение равно 20, новое обновленное значение равно 30, но потоки чтения считывают несуществующее значение, скажем, 33, я не уверен, возможно ли это)

Ответы на вопрос(2)

Ваш ответ на вопрос