Java programmeringsspråk tillåter programmerare att skriva kod som kan köras parallellt på olika trådar . Om datorn har mer än en processorkärna , kommer gängorna verkligen köra parallellt , annars kommer processorn multiplexeras över alla körbara trådar . När flera trådar verka på samma delade resursen , kan den resulterande koden endast vara korrekt om endast en tråd i taget fungerar på resursen. Synkroniserade metoder är garanterade att bevara den här egenskapen : vid varje given tidpunkt , på sin höjd , är en instans av en synkroniserad metod får använda resursen . Instruktioner
1
Deklarera en separat klass som innehåller synkroniserat kod , som i följande exempelkod :
public class SynchronizationExample ( ) {
}
Sida 2
Deklarera den delade resursen som en " privat " gruppmedlem , som i följande exempelkod :
public class SynchronizationExample ( ) {
private int accountBalance = 0 ;
}
3
deklarera de metoder som verkar på den delade resursen genom att använda " synkroniserad " nyckelordet , som i följande exempelkod :
public class SynchronizationExample ( ) {
private int accountBalance = 0 ;
offentliga synkroniseras void insättning ( int belopp ) {
accountBalance = accountBalance + belopp ,
}
offentliga synkroniseras void uttag ( int belopp ) {
accountBalance = accountBalance - belopp ,
}
}
Sedan de är synkroniserade , kommer metoder " insättning " och " tillbakadragande " exekvera inte parallellt , om man måste börja när den andra är verkställande, kommer det att få vänta tills den första att starta avslutar . Detta gör de ändringar till delad resurs " accountBalance " thread- safe .