Hoe vluchtig trefwoord in Java te implementeren?



Java is een programmering die is gezegend met tal van functies. In dit artikel zullen we een dergelijke functie onderzoeken die een vluchtig sleutelwoord is in Java.

is een programma dat is gezegend met tal van functies. In dit artikel zullen we een dergelijke functie onderzoeken die een vluchtig sleutelwoord is in Java. De volgende tips komen in dit artikel aan bod:

Verderop met dit artikel over vluchtig trefwoord in Java.





Een vluchtig sleutelwoord wordt gebruikt om de waarde van een variabele door verschillende threads te wijzigen. Het wordt ook gebruikt om klassen thread-safe te maken. Het betekent dat meerdere threads zonder problemen een methode en instantie van de klassen tegelijkertijd kunnen gebruiken. Het vluchtige sleutelwoord kan worden gebruikt met primitief type of objecten.

Voorbeeld

class Test {static int var = 5}

Ga er in het bovenstaande voorbeeld van uit dat twee threads aan dezelfde klasse werken. Beide threads draaien op verschillende processors, waarbij elke thread zijn lokale kopie van var heeft. Als een thread de waarde wijzigt, wordt de wijziging niet weerspiegeld in de oorspronkelijke thread in het hoofdgeheugen. Het leidt tot inconsistentie van de gegevens omdat de andere thread niet op de hoogte is van de gewijzigde waarde.



class Test {statische vluchtige int var = 5}

In het bovenstaande voorbeeld zijn statische variabelen klasse-leden die door alle objecten worden gedeeld. Er is slechts één kopie in het hoofdgeheugen. De waarde van een vluchtige variabele zal nooit in de cache worden opgeslagen. Alle lees- en schrijfbewerkingen worden uitgevoerd vanuit en naar het hoofdgeheugen.

verschil tussen chef en ansible

Verderop met dit artikel over vluchtig trefwoord in Java.

Verschil tussen synchronisatie en vluchtig trefwoord

Vluchtig trefwoord is geen vervanging van gesynchroniseerd trefwoord, maar kan in bepaalde gevallen als alternatief worden gebruikt. Er zijn de volgende verschillen:



Vluchtig trefwoord Synchronisatie sleutelwoord
Vluchtig trefwoord is een veldmodificator.Gesynchroniseerd trefwoord wijzigt codeblokken en methoden.
De draad kan niet worden geblokkeerd om te wachten in geval van vluchtig.Threads kunnen worden geblokkeerd om te wachten in geval van synchronisatie.
Het verbetert de draadprestaties.Gesynchroniseerde methoden verminderen de prestaties van de thread.
Het synchroniseert de waarde van één variabele tegelijk tussen threadgeheugen en hoofdgeheugen.Het synchroniseert de waarde van alle variabelen tussen threadgeheugen en hoofdgeheugen.
Vluchtige velden zijn niet onderhevig aan optimalisatie van de compiler.Synchroniseren is onderhevig aan optimalisatie van de compiler.

Verderop met dit artikel over vluchtig trefwoord in Java.

wat is hashmap in java

Voorbeeld:

openbare klasse VolatileTest {privé statische laatste Logger LOGGER = MyLoggerFactory.getSimplestLogger () privé statische vluchtige int MY_INT = 0 openbare statische leegte hoofd (String [] args) {nieuwe ChangeListener (). start () nieuwe ChangeMaker (). start ()} statische klasse ChangeListener breidt 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() } } } } } 

Afbeelding - Vluchtig-Edureka

Hiermee zijn we aan het einde gekomen van dit artikel over ‘Vluchtig trefwoord in Java’. Als je meer wilt weten, bekijk dan de Java Training van Edureka, een vertrouwd online leerbedrijf. Edureka's De cursus is ontworpen om u te trainen voor zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.