Дом развитие Что является летучим? - определение из техопедии

Что является летучим? - определение из техопедии

Оглавление:

Anonim

Определение - Что означает Volatile?

Volatile - это ключевое слово в языке программирования Java, которое указывает, что переменная-член, связанная с классом, может асинхронно изменяться несколькими потоками. Ключевое слово volatile в коде действует как модификатор при объявлении члена. Ключевые слова - это принципиально зарезервированные слова с определенным значением в контексте компилятора.

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

Техопедия объясняет изменчивость

Ключевое слово volatile гарантирует, что каждый доступ для чтения к переменной-члену возвращает ее самое последнее значение. Это не эффективно, если последние изменения сделаны с использованием другого потока. Если переменная-член не объявлена ​​как volatile, поток не сможет распознать изменения, внесенные в него, используя другой поток.

Для двойного или длинного члена ключевое слово volatile также гарантирует, что виртуальная машина не будет генерировать две последовательные 32-разрядные записи, но вместо этого создаст только одну 64-разрядную запись. Если это невозможно, реализация JVM продолжает обеспечивать атомарность этой функции, чтобы старая нижняя половина не читалась с новой более высокой половиной некоторого изменчивого типа double или long.

Изменчивые операции записи и чтения устанавливают отношения «происходит до того». Перед обращением к энергозависимому объекту происходит синхронизация между основной памятью и кэшированными переменными, как это происходит до входа или после выхода из синхронизированного блока. Это подразумевает, что энергозависимый объект может быть безопасно опубликован без синхронизации; то есть когда поток получает доступ к изменчивому объекту, члены этого объекта также обновляются.

Когда переменная описывается как volatile, JVM и компилятор Java выполняют следующие две вещи.

  1. Компилятору не удается максимизировать операторы и выражения, связанные с этой переменной.
  2. JVM синхронизирует переменную.

Преимущества volatile следующие:

  • Это легкий
  • Это приводит к очень небольшим затратам на чтение и запись, но все же быстрее, чем блокировка.
  • Летучий устойчив к мертвым замкам.
Что является летучим? - определение из техопедии