Kā ieviest gaistošu atslēgvārdu Java?



Java ir viena programmēšana, kas ir svētīta ar daudzām funkcijām. Šajā rakstā mēs izpētīsim vienu šādu funkciju, kas ir nepastāvīgs atslēgvārds Java.

ir viena programmēšana, kas ir svētīta ar daudzām funkcijām. Šajā rakstā mēs izpētīsim vienu šādu funkciju, kas ir nepastāvīgs atslēgvārds Java. Šajā rakstā tiks apskatīti šādi norādījumi,

Turpinot šo rakstu par gaistošo atslēgvārdu Java.





kā izmantot brīdinājumu javascript

Nepastāvīgs atslēgvārds tiek izmantots, lai mainītu mainīgā vērtību ar dažādiem pavedieniem. To izmanto arī, lai klases būtu drošas ar vītnēm. Tas nozīmē, ka vairākos pavedienos var vienlaikus izmantot metodi un klašu eksemplāru bez problēmām. Nepastāvīgo atslēgvārdu var izmantot vai nu ar primitīvu tipu, vai objektiem.

Piemērs

klases tests {static int var = 5}

Iepriekš minētajā piemērā pieņemsim, ka divi pavedieni strādā vienā klasē. Abi pavedieni darbojas dažādos procesoros, kur katram pavedienam ir lokāla var kopija. Ja kāds pavediens maina tā vērtību, izmaiņas netiks atspoguļotas sākotnējā galvenajā atmiņā. Tas noved pie datu neatbilstības, jo otrais pavediens nezina par modificēto vērtību.



klases tests {static volatile int var = 5}

Iepriekš minētajā piemērā statiskie mainīgie ir klases dalībnieki, kas tiek koplietoti starp visiem objektiem. Galvenajā atmiņā ir tikai viena kopija. Gaistošā mainīgā vērtība nekad netiks saglabāta kešatmiņā. Visa lasīšana un rakstīšana tiks veikta no galvenās atmiņas un uz to.

Turpinot šo rakstu par gaistošo atslēgvārdu Java.

Starpība starp sinhronizāciju un nepastāvīgo atslēgvārdu

Nepastāvīgais atslēgvārds neaizstāj sinhronizētu atslēgvārdu, taču noteiktos gadījumos to var izmantot kā alternatīvu. Ir šādas šādas atšķirības:



Nepastāvīgs atslēgvārds Sinhronizācijas atslēgvārds
Nepastāvīgais atslēgvārds ir lauka modifikators.Sinhronizētais atslēgvārds maina kodu blokus un metodes.
Nepastāvības gadījumā pavedienu nevar bloķēt gaidīšanai.Sinhronizācijas gadījumā pavedienus var bloķēt gaidīšanai.
Tas uzlabo pavedienu darbību.Sinhronizētās metodes pasliktina pavedienu veiktspēju.
Tas vienlaikus sinhronizē viena mainīgā vērtību starp pavedienu atmiņu un galveno atmiņu.Tas sinhronizē visu mainīgo vērtību starp pavedienu atmiņu un galveno atmiņu.
Nepastāvīgie lauki nav pakļauti kompilatora optimizācijai.Sinhronizācija ir pakļauta kompilatora optimizācijai.

Turpinot šo rakstu par gaistošo atslēgvārdu Java.

Piemērs:

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ā klase ChangeListener paplašina pavedienu {@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() } } } } } 

Attēls - gaistošā-Edureka

Tādējādi esam nonākuši pie šī raksta par ‘Nepastāvīgais atslēgvārds Java’ beigām. Ja vēlaties uzzināt vairāk, skatiet uzticamo tiešsaistes mācību uzņēmumu Edureka Java apmācību. Edureka kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem, kā arī dažādām Java sistēmām, piemēram, Hibernate & Spring.

twitter noskaņojuma analīze, izmantojot dzirksti

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.