Hur man implementerar flyktiga sökord i Java?



Java är en programmering som är välsignad med många funktioner. I den här artikeln kommer vi att utforska en sådan funktion som är flyktigt nyckelord i Java.

är en programmering som är välsignad med många funktioner. I den här artikeln kommer vi att utforska en sådan funktion som är flyktigt nyckelord i Java. Följande tips kommer att behandlas i den här artikeln,

Fortsätter med den här artikeln om Volatile Keyword in Java.





Ett flyktigt nyckelord används för att ändra värdet på en variabel med olika trådar. Det används också för att göra klasser trådsäkra. Det betyder att flera trådar kan använda en metod och instans av klasserna samtidigt utan problem. Det flyktiga nyckelordet kan användas antingen med primitiv typ eller objekt.

Exempel

klass Test {static int var = 5}

I exemplet ovan antar du att två trådar arbetar på samma klass. Båda trådarna körs på olika processorer där varje tråd har sin lokala kopia av var. Om någon tråd ändrar sitt värde återspeglas inte ändringen i den ursprungliga i huvudminnet. Det leder till datainkonsekvens eftersom den andra tråden inte är medveten om det modifierade värdet.



hur man använder substring i sql
klass Test {statisk flyktig int var = 5}

I exemplet ovan är statiska variabler klassmedlemmar som delas mellan alla objekt. Det finns bara en kopia i huvudminnet. Värdet på en flyktig variabel lagras aldrig i cachen. All läsning och skrivning kommer att göras från och till huvudminnet.

Fortsätter med den här artikeln om Volatile Keyword in Java.

Skillnad mellan synkronisering och flyktigt nyckelord

Flyktigt nyckelord är inte en ersättning för synkroniserat nyckelord, men det kan i vissa fall användas som ett alternativ. Det finns följande skillnader är följande:



Flyktiga nyckelord Nyckelord för synkronisering
Flyktigt nyckelord är ett fältmodifierare.Synkroniserat nyckelord ändrar kodblock och metoder.
Tråden kan inte blockeras för att vänta i fall av flyktig.Trådar kan blockeras för att vänta vid synkronisering.
Det förbättrar trådens prestanda.Synkroniserade metoder försämrar trådens prestanda.
Den synkroniserar värdet på en variabel i taget mellan trådminnet och huvudminnet.Den synkroniserar värdet på alla variabler mellan trådminnet och huvudminnet.
Flyktiga fält är inte föremål för optimering av kompilatorn.Synkronisering är föremål för optimering av kompilatorn.

Fortsätter med den här artikeln om Volatile Keyword in Java.

Exempel:

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 ()} statisk klass ChangeListener utökar tråd {@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() } } } } } 

Bild- Flyktiga-Edureka

Således har vi kommit till slutet av den här artikeln om ”Volatile Keyword in Java”. Om du vill lära dig mer, kolla in Java Training av Edureka, ett pålitligt online-lärande företag. Edureka's Kursen är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.