Hur kan man förhindra samtidig tillgång till en metod i Java

March 4

Moderna processorer med flera kärnor kan dra nytta av samtidiga Java-program. En samtidig ansökan är en som utför flera operationer samtidigt. Samtidighet introducerar unika utmaningar som måste lösas för att undvika problem. Ett stort problem uppstår när två trådar av exekverings varje tillgång till samma metod samtidigt. En tråd kan störa varandra och göra data opålitliga. För att kontrollera detta problem, kan du förhindra samtidig tillgång till en metod som använder synkroniseringsfunktionen för Java.

Instruktioner

1 Ladda NetBeans IDE genom att klicka på dess programikon. När programmet laster, gå till "Ny / New Project" och välj "Java Application" från listan till höger på skärmen. En ny källkodsfil visas i NetBeans textredigeraren. Källkoden filen innehåller en tom huvudfunktion.

2 Deklarera en statisk variabel som heter x genom att skriva följande i huvudfunktionen i källkoden: static int x = 0;

3 Skapa en synkroniserad metod genom att lägga till "synkroniserade" nyckelord metoden deklarationen. En synkroniserad metod kan endast nås genom en tråd i taget, vilket förhindrar uppgifter inkonsekvenser. Att förklara en metod som heter "method" synkroniserad, skriva följande uttalande i källkoden fil: allmän synkroniserad method ()

4 Öka ett heltal genom att skriva följande uttalande inom klamrarna av metoden: tillbaka x ++;

5 Ring den synkroniserade metoden. För att förstå vad synkroniserings utför, först antar att metoden inte synkroniserade. Om två parallella trådar kallar metoden samtidigt, de kommer varje ökning variabeln x. Eftersom x börjar på 0, kommer resultatet av en ökning operation vara x = 1. Detta är ett problem eftersom metoden anropades två gånger, och därför x vara lika 2. Eftersom "method" är synkroniserad, endast en av de två parallella trådar kommer in i metoden i taget. En tråd kommer in "method" ökning x och avsluta. Detta gör det möjligt för andra tråden för att ange "method" och utför den andra stegoperationen. Med den synkroniserade sökordet, två samtal till "method" resultat i x är lika med 2. Sätt samtal kan skrivas så här: method ();


        

Välkommen till dig för att skicka en kommentar:

            
            
            
            

© 2019 Astrixsoft.com | Contact us: webmaster# astrixsoft.com