Volátil

Definição - o que significa volátil?

Volátil é uma palavra-chave na linguagem de programação java que especifica que uma variável de membro associada a uma classe pode ser alterada de forma assíncrona por vários threads. A palavra-chave volátil no código atua como um modificador quando um membro é declarado. Palavras-chave são palavras fundamentalmente reservadas com um significado distinto no contexto de um compilador.

A palavra-chave volatile é usada sempre que a variável significa algum tipo de variável que depende do ambiente ou sistema, como contadores e relógios simples.

Definirtec explica volátil

A palavra-chave volatile garante que cada acesso de leitura a uma variável de membro retorne o valor mais recente dela. Isso não é eficaz quando as alterações recentes são feitas usando um thread diferente. Se uma variável de membro não for declarada como volátil, um segmento não será capaz de reconhecer as modificações feitas nele usando um segmento diferente.

Para um membro duplo ou longo, a palavra-chave volatile também garante que a máquina virtual não gerará duas gravações sucessivas de 32 bits, mas criará apenas uma gravação de 64 bits. Se isso não for viável, a implementação da JVM continuará a garantir a atomicidade dessa função para que a metade inferior antiga não seja lida com a nova metade superior de algum duplo ou longo volátil.

As gravações e leituras voláteis configuram um relacionamento acontece antes. Antes de um objeto volátil ser acessado, ocorre uma sincronização entre a memória principal e as variáveis ​​armazenadas em cache, da mesma forma que ocorre antes de entrar ou depois de sair de um bloco sincronizado. Isso implica que um objeto volátil pode ser publicado com segurança sem sincronização; ou seja, quando um objeto volátil é acessado por um encadeamento, os membros desse objeto também são atualizados.

Quando uma variável é descrita como volátil, o JVM e o compilador Java executam as duas coisas a seguir.

  1. O compilador falha em maximizar as instruções e expressões relacionadas a essa variável.
  2. JVM sincroniza a variável.

As vantagens do volátil são as seguintes:

  • É leve
  • Isso causa uma sobrecarga muito pequena para leituras e gravações, mas ainda é mais rápido do que o bloqueio.
  • Volátil é resistente a fechaduras mortas.