Moderna processorer med flera kärnor kan dra nytta av samtidiga Java-program . En samtidig tillämpning ä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 verkställigheten varje tillträde 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 synkronisering inslag i Java . Saker du behöver Review, Java Software Development Kit med NetBeans Integrated Development Environment ( IDE ) Bundle
Visa fler instruktioner
1
Fyll i NetBeans IDE genom att klicka på dess programikon . När programmet laster , navigera till " Ny /Nytt projekt " och välj " Java Application " i listan på höger sida av skärmen . En ny källkod filen visas i NetBeans textredigeraren . Källkoden filen innehåller en tom huvudfunktion
2
Deklarera Den statiska variabeln x genom att skriva följande i den viktigaste funktionen i källkoden : . Static int x = 0;
Billiga 3
Skapa en synkroniserad metod genom att lägga till " synkroniserade " nyckelordet till metoden deklarationen . En synkroniserad metod kan endast nås genom en tråd i taget , vilket förhindrar uppgifter inkonsekvenser . För att deklarera en metod som heter " methodName " synkroniserad , skriver följande uttalande i källkoden file : offentliga synkroniseras methodName ( )
4
Öka ett heltal genom att skriva följande uttalande inom klammerparenteser av metoden : tillbaka x + + ;
5
Ring synkroniserade metoden . För att förstå vad synkronisering utför , först anta att metoden inte var synkroniserade . Om två parallella trådar anropa metoden samtidigt , kommer de att varje ökning av variabeln x . Eftersom x startar på 0 , kommer resultatet av en ökning operation vara x = 1 . Detta är ett problem eftersom metoden kallades två gånger , och därför x bör motsvara 2 . Eftersom " methodName " är synkroniserad , kommer endast en av de två parallella trådar in metoden i taget . En tråd kommer in " methodName , " x tillväxtförändringar och avsluta . Detta gör att andra tråden att ange " methodName " och utför den andra inkrement operationen . Med den synkroniserade sökord , två samtal till " methodName " result in x är lika med 2 . Ett metodanrop kan skrivas så här : methodName ( ) ;