Kuidas rakendada lenduvat märksõna Java-s?



Java on üks programmeerimine, mida on õnnistatud rohkete funktsioonidega. Selles artiklis uurime ühte sellist funktsiooni, mis on kõikuv Java märksõna.

on üks programmeerimine, mida on õnnistatud rohkete funktsioonidega. Selles artiklis uurime ühte sellist funktsiooni, mis on kõikuv Java märksõna. Järgmisi näpunäiteid käsitletakse selles artiklis,

Jätkates seda artiklit Java lenduvate märksõnade kohta.





on vs on java

Volatiilset märksõna kasutatakse muutuja väärtuse muutmiseks erinevate lõimede abil. Seda kasutatakse ka klasside niidikindlaks muutmiseks. See tähendab, et mitu lõime saavad probleemideta kasutada meetodit ja klasside eksemplari korraga. Lenduvat märksõna saab kasutada kas primitiivse tüübi või objektidega.

Näide

klassi test {static int var = 5}

Eeldage ülaltoodud näites, et kaks lõime töötab ühes klassis. Mõlemad lõimed töötavad erinevates protsessorites, kus igal lõimel on vari kohalik koopia. Kui mõni lõng muudab selle väärtust, ei kajastu muudatus algmälus põhimälus. See viib andmete vasturääkivuseni, kuna teine ​​lõim ei ole muudetud väärtusest teadlik.



klassi test {staatiline lenduv int var = 5}

Ülaltoodud näites on staatilised muutujad klassi liikmed, mida jagatakse kõigi objektide vahel. Põhimälus on ainult üks eksemplar. Lenduva muutuja väärtust ei salvestata kunagi vahemällu. Kogu lugemine ja kirjutamine toimub põhimälust ja mällu.

Jätkates seda artiklit Java lenduvate märksõnade kohta.

Erinevus sünkroonimise ja kõikuva märksõna vahel

Lenduv märksõna ei asenda sünkroniseeritud märksõna, kuid teatud juhtudel võib seda kasutada alternatiivina. Erinevused on järgmised:



Lenduv märksõna Sünkroonimise märksõna
Lenduv märksõna on välja muutja.Sünkroniseeritud märksõna muudab koodiplokke ja -meetodeid.
Lendude korral ei saa lõime ootamiseks blokeerida.Sünkroonimise korral saab lõimed ootamiseks blokeerida.
See parandab niidi jõudlust.Sünkroniseeritud meetodid halvendavad lõime jõudlust.
See sünkroonib ühe muutuja väärtuse korraga niidimälu ja põhimälu vahel.See sünkroniseerib kõigi muutujate väärtused niidimälu ja põhimälu vahel.
Lenduvad väljad kompilaatori optimeerimise alla ei kuulu.Sünkroonimine sõltub kompilaatori optimeerimisest.

Jätkates seda artiklit Java lenduvate märksõnade kohta.

Näide:

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 ()} staatiline klass ChangeListener laiendab lõime {@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() } } } } } 

Pilt- lenduv-Edureka

Nii oleme jõudnud selle artikli lõppu ‘Volatile Keyword in Java’. Kui soovite rohkem teada saada, vaadake usaldusväärse veebipõhise õppefirma Edureka Java koolitust. Edureka oma Kursus on mõeldud selleks, et õpetada teid nii põhi- kui ka edasijõudnute Java-kontseptsioonide jaoks koos erinevate Java-raamistikega nagu talveunerežiim ja kevad.

mis vahe on klassil ja liidesel

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.