Ako implementovať prchavé kľúčové slovo v Jave?



Java je programovanie, ktoré má veľa funkcií. V tomto článku sa budeme venovať jednej z funkcií, ktorá je premenlivým kľúčovým slovom v Jave.

je programovanie, ktoré má veľa funkcií. V tomto článku sa budeme venovať jednej z funkcií, ktorá je premenlivým kľúčovým slovom v Jave. V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi,

Pokračujeme týmto článkom o prchavých kľúčových slovách v Jave.





Prchavé kľúčové slovo sa používa na úpravu hodnoty premennej o rôzne vlákna. Používa sa tiež na zabezpečenie tried bezpečných pre vlákna. To znamená, že viaceré vlákna môžu bez problémov používať metódu a inštanciu tried súčasne. Prchavé kľúčové slovo je možné použiť buď s primitívnym typom, alebo s objektmi.

Príklad

test triedy {static int var = 5}

Vo vyššie uvedenom príklade predpokladajme, že dve vlákna pracujú na rovnakej triede. Obidve vlákna fungujú na rôznych procesoroch, kde každé vlákno má svoju lokálnu kópiu var. Ak ľubovoľné vlákno zmení svoju hodnotu, zmena sa neprejaví v pôvodnom v hlavnej pamäti. Vedie to k nekonzistencii údajov, pretože druhé vlákno nevie o upravenej hodnote.



java na moc operatora
test triedy {static volatile int var = 5}

V uvedenom príklade sú statické premenné členmi triedy, ktoré sú zdieľané medzi všetkými objektmi. V hlavnej pamäti je iba jedna kópia. Hodnota premennej premennej sa nikdy neuloží do medzipamäte. Všetko čítanie a zápis sa bude robiť z hlavnej pamäte a do nej.

čo je udalosť v javascript

Pokračujeme týmto článkom o prchavých kľúčových slovách v Jave.

Rozdiel medzi synchronizáciou a premenlivým kľúčovým slovom

Prchavé kľúčové slovo nie je náhradou synchronizovaného kľúčového slova, ale v určitých prípadoch ho možno použiť ako alternatívu. Existujú nasledujúce rozdiely:



Prchavé kľúčové slovo Synchronizačné kľúčové slovo
Prchavé kľúčové slovo je modifikátor poľa.Synchronizované kľúčové slovo upravuje bloky a metódy kódu.
Vlákno nemôže byť blokované na čakanie v prípade prchavosti.Vlákna môžu byť blokované na počkanie v prípade synchronizácie.
Zlepšuje výkon vlákna.Synchronizované metódy znižujú výkon vlákna.
Synchronizuje hodnotu jednej premennej naraz medzi pamäťou vlákien a hlavnou pamäťou.Synchronizuje hodnotu všetkých premenných medzi pamäťou vlákien a hlavnou pamäťou.
Prchavé polia nepodliehajú optimalizácii kompilátora.Synchronizácia je predmetom optimalizácie kompilátora.

Pokračujeme týmto článkom o prchavých kľúčových slovách v Jave.

Prí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á trieda ChangeListener rozširuje 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

reťazec do dátumu využitia v jave

Tak sme sa dostali k ukončeniu tohto článku o „Prchavých kľúčových slovách v Jave“. Ak sa chcete dozvedieť viac, vyskúšajte Java Training by Edureka, dôveryhodná online vzdelávacia spoločnosť. Edureka’s kurz je navrhnutý tak, aby vás naučil základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.