Синхронизация на “ссылке” или на экземпляре

С другой стороны, можно объявить глобальную константу, и использовать C++ если вместо препроцессора #if. Компилятор должен оптимизировать неиспользованные ответвления далеко для Вас, и Ваш код будет более чистым.

Вот то, что Глюки C++ Stephen C. Dewhurst говорят об использовании #if.

19
задан Lopotun 14 December 2009 в 11:31
поделиться

1 ответ

Они не «синхронизируются в двух разных экземплярах» - просто потому, что вы используете два разных переменных не означает, что существует два разных экземпляра . У вас есть несколько переменных, каждая из которых будет иметь одинаковое значение - ссылка на единственный экземпляр java.lang.Object .

Так что да, это потокобезопасный. Конечно, вам не следует писать такой код с точки зрения удобочитаемости, но если вы просто пытаетесь понять, что происходит, все в порядке.

- то, что вы используете две разные переменные , не означает, что существуют два разных экземпляра . У вас есть несколько переменных, у каждой из которых будет одно и то же значение - ссылка на единственный экземпляр java.lang.Object .

Так что да, это потокобезопасный. Конечно, вам не следует писать такой код с точки зрения удобочитаемости, но если вы просто пытаетесь понять, что происходит, все в порядке.

- то, что вы используете две разные переменные , не означает, что существуют два разных экземпляра . У вас есть несколько переменных, каждая из которых будет иметь одинаковое значение - ссылка на единственный экземпляр java.lang.Object .

Так что да, это потокобезопасный. Конечно, вам не следует писать такой код с точки зрения удобочитаемости, но если вы просто пытаетесь понять, что происходит, все в порядке.

19
ответ дан 30 November 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: