Jak implementovat těkavé klíčové slovo v Javě?



Java je programování, které má spoustu funkcí. V tomto článku se budeme zabývat jednou takovou funkcí, kterou je volatilní klíčové slovo v Javě.

je programování, které je požehnáno spoustou funkcí. V tomto článku se budeme zabývat jednou takovou funkcí, kterou je volatilní klíčové slovo v Javě. V tomto článku se budeme zabývat následujícími ukazateli,

Pokračování tohoto článku o těkavých klíčových slovech v Javě.





Klíčové slovo volatile se používá k úpravě hodnoty proměnné různými vlákny. Používá se také k tomu, aby třídy byly bezpečné pro vlákna. To znamená, že více vláken může používat metodu a instanci tříd současně bez jakýchkoli problémů. Klíčové slovo volatile lze použít buď s primitivním typem, nebo s objekty.

Příklad

test třídy {static int var = 5}

Ve výše uvedeném příkladu předpokládejme, že dvě vlákna pracují na stejné třídě. Obě vlákna běží na různých procesorech, kde každé vlákno má svou místní kopii var. Pokud libovolné vlákno upraví svou hodnotu, změna se neprojeví v původním v hlavní paměti. Vede to k nekonzistenci dat, protože druhé vlákno si není vědomo upravené hodnoty.



jak pořídit snímek obrazovky v selenu
test třídy {static volatile int var = 5}

Ve výše uvedeném příkladu jsou statické proměnné členy třídy, které jsou sdíleny mezi všemi objekty. V hlavní paměti je pouze jedna kopie. Hodnota těkavé proměnné nebude nikdy uložena do mezipaměti. Veškeré čtení a zápis budou prováděny za do hlavní paměti.

co je metoda javascript

Pokračování tohoto článku o těkavých klíčových slovech v Javě.

Rozdíl mezi synchronizací a volatilním klíčovým slovem

Volatile klíčové slovo nenahrazuje synchronizované klíčové slovo, ale v určitých případech ho lze použít jako alternativu. Existují následující rozdíly:



Těkavé klíčové slovo Klíčové slovo pro synchronizaci
Těkavé klíčové slovo je modifikátor pole.Synchronizované klíčové slovo upravuje bloky a metody kódu.
Vlákno nelze blokovat pro čekání v případě volatile.Vlákna mohou být blokována pro čekání v případě synchronizace.
Zlepšuje výkon vlákna.Synchronizované metody snižují výkon podprocesu.
Synchronizuje hodnotu jedné proměnné po druhé mezi podprocesovou pamětí a hlavní pamětí.Synchronizuje hodnotu všech proměnných mezi podprocesovou pamětí a hlavní pamětí.
Těkavá pole nepodléhají optimalizaci kompilátoru.Synchronizace podléhá optimalizaci kompilátoru.

Pokračování tohoto článku o těkavých klíčových slovech v Javě.

Příklad:

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 ()} statická třída ChangeListener rozšiřuje vlákno {@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

java program pro sérii fibonacci

Tak jsme dospěli ke konci tohoto článku o „těkavých klíčových slovech v Javě“. Pokud se chcete dozvědět více, podívejte se na Java Training by Edureka, důvěryhodná online vzdělávací společnost. Edureka kurz je navržen tak, aby vás naučil základní i pokročilé koncepty Java a různé rámce Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.