Ключевое слово Volatile в Java - Уточнение [duplicate]

34
задан devnull 30 August 2010 в 18:36
поделиться

3 ответа

volatile гарантирует, что читает из переменная всегда отражает самое актуальное для обновления значение. Среда выполнения может добиться этого различными способами, включая отказ от кэширования или обновления кэша при изменении значения.

6
ответ дан 27 November 2019 в 16:38
поделиться

Из a с точки зрения клиента, частное изменяемое поле скрыто от общедоступного интерфейса, в то время как синхронизированные методы более заметны.

0
ответ дан 27 November 2019 в 16:38
поделиться

Чтобы ответить на часть 3 вашего вопроса и частично на часть 2.

Нет функциональной разницы между synchronized и volatile образцов.

Однако каждый из них имеет свои недостатки с точки зрения производительности. В некоторых случаях производительность volatile может быть действительно хуже, чем простое использование synchronized или других примитивов из java.util.concurrent. Для обсуждения этого см. -> Почему переменные в Java не являются изменчивыми по умолчанию? .

0
ответ дан 27 November 2019 в 16:38
поделиться
Другие вопросы по тегам:

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