Sisällysluettelo:
Määritelmä - mitä haihtuva tarkoittaa?
Haihtuva on Java-ohjelmointikielen avainsana, joka määrittelee, että luokkaan liittyvä jäsenmuuttuja voidaan muuttaa asynkronisesti useilla säieillä. Koodin haihtuva avainsana toimii modifioijana, kun jäsen ilmoitetaan. Avainsanat ovat perustavasti varattuja sanoja, joilla on erillinen merkitys kääntäjän yhteydessä.
Haihtuvaa avainsanaa käytetään aina, kun muuttuja merkitsee jonkinlaista muuttujaa, joka riippuu ympäristöstä tai järjestelmästä, kuten yksinkertaisia laskuria ja kelloja.
Techopedia selittää haihtuvaa
Haihtuva avainsana varmistaa, että jokainen lukuoikeus jäsenmuuttujaan tuottaa sen viimeisimmän arvon. Tämä ei ole tehokasta, kun viimeaikaiset muutokset tehdään eri säikeellä. Jos jäsenmuuttujaa ei julisteta haihtuvaksi, säie ei pysty tunnistamaan sille tehdyt muutokset eri säikeellä.
Kaksinkertaiselle tai pitkälle jäsenelle haihtuva avainsana varmistaa myös, että virtuaalikone ei tuota kahta peräkkäistä 32-bittistä kirjoitusta, vaan luo vain yhden 64-bittisen kirjoituksen sen sijaan. Jos tämä ei ole mahdollista, JVM-toteutus varmistaa edelleen tämän funktion atomisuuden, jotta vanhaa alaosaa ei luettaisi jonkin haihtuvan kaksois- tai pitkän uuden ylemmällä puoliskolla.
Haihtuva kirjoittaa ja lukee perustaa tapahtuma-aikaisen suhteen. Ennen haihtuvan kohteen pääsyä tapahtuu synkronointi päämuistin ja välimuistilla olevien muuttujien välillä, aivan kuten tapahtuu ennen synkronoituun lohkoon saapumista tai sen jälkeen. Tämä tarkoittaa, että haihtuva esine voidaan julkaista turvallisesti ilman synkronointia; eli kun haihtuvaan kohteeseen pääsee säikeellä, myös kyseisen objektin jäsenet päivitetään.
Kun muuttujaa kuvataan haihtuvaksi, JVM ja Java-kääntäjä suorittavat seuraavat kaksi asiaa.
- Kääntäjä ei pysty maksimoimaan kyseiseen muuttujaan liittyviä lauseita ja lausekkeita.
- JVM synkronoi muuttujan.
Haihtuvien edut ovat seuraavat:
- Se on kevyt
- Se aiheuttaa hyvin pienen yläpään lukemisen ja kirjoittamisen, mutta on silti nopeampaa kuin lukitseminen.
- Haihtuvat kestävät kuolleita lukkoja.
