Como implementar palavras-chave voláteis em Java?



Java é uma programação abençoada com muitos recursos. Neste artigo, exploraremos um desses recursos que é a palavra-chave volátil em Java.

é uma programação que é abençoada com muitos recursos. Neste artigo, exploraremos um desses recursos que é a palavra-chave volátil em Java. As dicas a seguir serão abordadas neste artigo,

java sort arraylist de inteiros

Continuando com este artigo sobre palavra-chave volátil em Java.





Uma palavra-chave volátil é usada para modificar o valor de uma variável por diferentes threads. Ele também é usado para tornar as classes thread-safe. Isso significa que vários threads podem usar um método e uma instância das classes ao mesmo tempo sem nenhum problema. A palavra-chave volatile pode ser usada com tipos ou objetos primitivos.

Exemplo

classe Teste {static int var = 5}

No exemplo acima, suponha que dois threads estejam trabalhando na mesma classe. Ambos os threads são executados em processadores diferentes, onde cada thread tem sua cópia local de var. Se algum thread modificar seu valor, a mudança não se refletirá no original na memória principal. Isso leva à inconsistência de dados porque o outro encadeamento não está ciente do valor modificado.



classe Teste {static volatile int var = 5}

No exemplo acima, as variáveis ​​estáticas são membros da classe compartilhados entre todos os objetos. Existe apenas uma cópia na memória principal. O valor de uma variável volátil nunca será armazenado no cache. Todas as leituras e gravações serão feitas de e para a memória principal.

Continuando com este artigo sobre palavra-chave volátil em Java.

Diferença entre sincronização e palavra-chave volátil

A palavra-chave volátil não é um substituto da palavra-chave sincronizada, mas pode ser usada como alternativa em certos casos. Existem as seguintes diferenças:



Palavra-chave volátil Palavra-chave de sincronização
A palavra-chave volátil é um modificador de campo.A palavra-chave sincronizada modifica blocos de código e métodos.
O segmento não pode ser bloqueado para espera em caso de volátil.Threads podem ser bloqueados para espera em caso de sincronização.
Melhora o desempenho do thread.Os métodos sincronizados degradam o desempenho do thread.
Ele sincroniza o valor de uma variável por vez entre a memória do thread e a memória principal.Ele sincroniza o valor de todas as variáveis ​​entre a memória do thread e a memória principal.
Os campos voláteis não estão sujeitos à otimização do compilador.A sincronização está sujeita à otimização do compilador.

Continuando com este artigo sobre palavra-chave volátil em Java.

como fazer um dicionário em java

Exemplo:

public class VolatileTest {private static final Logger LOGGER = MyLoggerFactory.getSimplestLogger () private static volatile int MY_INT = 0 public static void main (String [] args) {new ChangeListener (). start () new ChangeMaker (). start ()} classe estática ChangeListener extends Thread {@Override public void run () {int local_value = MY_INT while (local_value<5){ if( local_value!= MY_INT){ LOGGER.log(Level.INFO,'Got Change for MY_INT : {0}', MY_INT) local_value= MY_INT } } } } static class ChangeMaker extends Thread{ @Override public void run() { int local_value = MY_INT while (MY_INT <5){ LOGGER.log(Level.INFO, 'Incrementing MY_INT to {0}', local_value+1) MY_INT = ++local_value try { Thread.sleep(500) } catch (InterruptedException e) { e.printStackTrace() } } } } } 

Image- Volatile-Edureka

Assim, chegamos ao fim deste artigo sobre ‘Palavras-chave voláteis em Java’. Se você deseja aprender mais, confira o Treinamento em Java da Edureka, uma empresa confiável de aprendizado online. Edureka's O curso foi desenvolvido para treiná-lo tanto para os conceitos básicos quanto para os avançados do Java, juntamente com várias estruturas Java como Hibernate e Spring.

como usar classificação em c ++

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.