Hogyan lehet megvalósítani az illékony kulcsszót a Java-ban?



A Java egy olyan programozás, amelyet rengeteg szolgáltatással megáldottak. Ebben a cikkben egy olyan tulajdonságot fogunk megvizsgálni, amely a volatilis kulcsszó a Java-ban.

egy olyan programozás, amely rengeteg funkcióval meg van áldva. Ebben a cikkben egy olyan tulajdonságot fogunk megvizsgálni, amely a volatilis kulcsszó a Java-ban. A következő hivatkozásokkal foglalkozunk ebben a cikkben,

Folytatás ezzel a cikkel a Java illékony kulcsszaváról.





Volatilis kulcsszóval módosítható a változó értéke különböző szálakkal. Azt is használják, hogy az osztályok szálbiztosak legyenek. Ez azt jelenti, hogy több szál probléma nélkül használhat egyszerre egy módszert és az osztályok példányát. Az illékony kulcsszó primitív típusú vagy objektumokkal használható.

twitter hangulatelemzés szikra segítségével

Példa

osztály teszt {static int var = 5}

Tegyük fel, hogy a fenti példában két szál ugyanazon az osztályon dolgozik. Mindkét szál különböző processzorokon fut, ahol mindegyik szálnak a var másolata található. Ha valamelyik szál módosítja az értékét, akkor a változás nem fog tükröződni a fő memóriában lévő eredetiben. Az adatok inkonzisztenciájához vezet, mert a másik szál nincs tisztában a módosított értékkel.



osztály teszt {static volatile int var = 5}

A fenti példában a statikus változók osztálytagok, amelyek az összes objektum között meg vannak osztva. A fő memóriában csak egy példány van. Az illékony változó értéke soha nem lesz tárolva a gyorsítótárban. Minden olvasás és írás a fő memóriából és a memóriába történik.

Folytatás ezzel a cikkel a Java illékony kulcsszaváról.

egyesítés sort c ++ megvalósítás

Különbség a szinkronizálás és az illékony kulcsszó között

Az illékony kulcsszó nem helyettesíti a szinkronizált kulcsszót, de bizonyos esetekben alternatívaként használható. A következő különbségek vannak:



Illékony kulcsszó Szinkronizációs kulcsszó
Az illékony kulcsszó mező módosító.A szinkronizált kulcsszó módosítja a kódblokkokat és módszereket.
A menetet nem lehet várakozásra blokkolni illékony eset esetén.A szálak szinkronizálás esetén blokkolhatók a várakozáshoz.
Javítja a szál teljesítményét.A szinkronizált módszerek rontják a szál teljesítményét.
Szinkronizálja egyszerre egy változó értékét a szál memória és a fő memória között.Szinkronizálja az összes változó értékét a szál memória és a fő memória között.
Az illékony mezőkre nem vonatkozik a fordító optimalizálása.A szinkronizálás a fordító optimalizálása alá tartozik.

Folytatás ezzel a cikkel a Java illékony kulcsszaváról.

Példa:

hogyan lehet osztályos szingulettet készíteni
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 ()} a statikus osztály a ChangeListener kiterjeszti a szálat {@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() } } } } } 

Kép- illékony-Edureka

Így a „Volatile Keyword in Java” című cikkünk végéhez értünk. Ha többet szeretne megtudni, nézze meg a Java Training by Edureka, egy megbízható online tanulási társaságot. Edureka's tanfolyamot arra tervezték, hogy mind az alapvető, mind a fejlett Java-koncepciók számára kiképezzen különféle Java-keretrendszereket, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg a blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.