Paano Maipatupad ang pabagu-bago ng keyword sa Java?



Ang Java ay isang programa na nabiyayaan ng maraming mga tampok. Sa artikulong ito ay susisiyasatin namin ang isang naturang tampok na pabagu-bago ng isip na keyword sa Java.

ay isang programa na nabiyayaan ng maraming mga tampok. Sa artikulong ito ay susisiyasatin namin ang isang naturang tampok na pabagu-bago ng isip na keyword sa Java. Saklaw ang artikulong ito sa artikulong ito,

Nagpapatuloy sa artikulong ito sa pabagu-bago ng keyword sa Java.





Ginagamit ang isang pabagu-bago na keyword upang baguhin ang halaga ng isang variable sa pamamagitan ng iba't ibang mga thread. Ginagamit din ito upang gawing ligtas ang mga klase. Nangangahulugan ito na ang maraming mga thread ay maaaring gumamit ng isang paraan at halimbawa ng mga klase nang sabay nang walang anumang problema. Ang pabagu-bago ng keyword ay maaaring magamit alinman sa primitive na uri o mga bagay.

Halimbawa

klase ng Pagsubok {static int var = 5}

Sa halimbawa sa itaas, ipagpalagay na ang dalawang mga thread ay gumagana sa parehong klase. Ang parehong mga thread ay tumatakbo sa iba't ibang mga processor kung saan ang bawat thread ay mayroong lokal na kopya ng var. Kung binago ng anumang thread ang halaga nito, ang pagbabago ay hindi makikita sa orihinal na isa sa pangunahing memorya. Humahantong ito sa hindi pagkakapare-pareho ng data dahil hindi alam ng ibang thread ang binagong halaga.



klase ng Pagsubok {static pabagu-bago ng isip int var = 5}

Sa halimbawa sa itaas, ang mga static variable ay mga miyembro ng klase na ibinabahagi sa lahat ng mga object. Mayroon lamang isang kopya sa pangunahing memorya. Ang halaga ng isang pabagu-bago na variable ay hindi kailanman maiimbak sa cache. Ang lahat na magbasa at magsulat ay magagawa mula sa at sa pangunahing memorya.

pagsamahin ang pag-uuri ng c ++ algorithm

Nagpapatuloy sa artikulong ito sa pabagu-bago ng keyword sa Java.

Pagkakaiba sa pagitan ng pagsabay at pabagu-bago ng keyword

Ang pabagu-bago ng keyword ay hindi isang kahalili ng naka-synchronize na keyword, ngunit maaari itong magamit bilang isang kahalili sa ilang mga kaso. Mayroong mga sumusunod na pagkakaiba ay ang mga sumusunod:



Pabagu-bago ng keyword Keyword sa Pagsasabay
Ang pabagu-bago ng keyword ay isang pagbabago sa larangan.Ang binago na keyword ay nagbabago ng mga bloke at pamamaraan ng code.
Hindi mai-block ang thread para sa paghihintay sa kaso ng pabagu-bago.Maaaring hadlangan ang mga thread para sa paghihintay kung sakaling ma-synchronize.
Pinapabuti nito ang pagganap ng thread.Ang mga naka-synchronize na pamamaraan ay nagpapasama sa pagganap ng thread.
Sinasabay nito ang halaga ng isang variable nang paisa-isa sa pagitan ng memorya ng thread at pangunahing memorya.Sinasabay nito ang halaga ng lahat ng mga variable sa pagitan ng memorya ng thread at pangunahing memorya.
Ang mga pabagu-bago na patlang ay hindi napapailalim sa pag-optimize ng compiler.Napapailalim sa pag-optimize ang pagsabay.

Nagpapatuloy sa artikulong ito sa pabagu-bago ng keyword sa Java.

pagkakaiba sa pagitan ng magtapon at magtapon sa java

Halimbawa:

publikong klase ng VolatileTest {pribadong static final Logger LOGGER = MyLoggerFactory.getSimplestLogger () pribadong static pabagu-bago ng loob int MY_INT = 0 public static void main (String [] args) {new ChangeListener (). start () bagong ChangeMaker (). start ()} static class ChangeListener nagpapalawak ng Thread {@Orride public void run () {int local_value = MY_INT habang (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() } } } } } 

Larawan- Pabagu-bago-Edureka

Sa gayon ay natapos na kami sa artikulong ito sa 'pabagu-bago ng keyword sa Java'. Kung nais mong matuto nang higit pa, suriin ang Java Training ni Edureka, isang pinagkakatiwalaang kumpanya sa online na pag-aaral. Edureka’s ang kurso ay idinisenyo upang sanayin ka para sa parehong core at advanced na konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na ito at babalikan ka namin sa lalong madaling panahon.