С другой стороны, можно объявить глобальную константу, и использовать C++ если вместо препроцессора #if. Компилятор должен оптимизировать неиспользованные ответвления далеко для Вас, и Ваш код будет более чистым.
Вот то, что Глюки C++ Stephen C. Dewhurst говорят об использовании #if.
Они не «синхронизируются в двух разных экземплярах» - просто потому, что вы используете два разных переменных не означает, что существует два разных экземпляра . У вас есть несколько переменных, каждая из которых будет иметь одинаковое значение - ссылка на единственный экземпляр java.lang.Object
.
Так что да, это потокобезопасный. Конечно, вам не следует писать такой код с точки зрения удобочитаемости, но если вы просто пытаетесь понять, что происходит, все в порядке.
- то, что вы используете две разные переменные , не означает, что существуют два разных экземпляра . У вас есть несколько переменных, у каждой из которых будет одно и то же значение - ссылка на единственный экземпляр java.lang.Object
.
Так что да, это потокобезопасный. Конечно, вам не следует писать такой код с точки зрения удобочитаемости, но если вы просто пытаетесь понять, что происходит, все в порядке.
- то, что вы используете две разные переменные , не означает, что существуют два разных экземпляра . У вас есть несколько переменных, каждая из которых будет иметь одинаковое значение - ссылка на единственный экземпляр java.lang.Object
.
Так что да, это потокобезопасный. Конечно, вам не следует писать такой код с точки зрения удобочитаемости, но если вы просто пытаетесь понять, что происходит, все в порядке.