Il linguaggio di programmazione Java consente ai programmatori di scrivere codice che verrà eseguito in parallelo su diversi thread. Se il computer dispone di più core di processore , i fili saranno davvero in parallelo , in caso contrario , il processore sarà multiplex su tutti i thread eseguibili . Quando più thread operano sulla stessa risorsa condivisa , il codice risultante può essere corretto solo se un solo filo per volta agisce su tale risorsa. Metodi sincronizzati sono garantiti per preservare questa struttura : in un dato momento , al massimo, una istanza di un metodo sincronizzato è permesso di utilizzare la risorsa . Istruzioni
1
Dichiarare una classe separata che conterrà codice sincronizzato , come nel seguente codice di esempio :
SynchronizationExample public class ( ) { }
2
dichiarare la risorsa condivisa , come un membro della classe "privato" , come nel seguente codice di esempio :
SynchronizationExample public class ( ) {
private int AccountBalance = 0 ;
}
3
dichiarare i metodi che operano sulla risorsa condivisa utilizzando la parola chiave " sincronizzato " , come nel seguente codice di esempio :
SynchronizationExample public class ( ) {
private int AccountBalance = 0;
pubblico synchronized void deposito ( int valore ) {
AccountBalance = AccountBalance + quantità ;
< p > }
pubblico synchronized void ritiro ( int valore ) {
AccountBalance = AccountBalance - importo ;
}
}
Dal sono sincronizzati , i metodi di "deposito " e " prelievo " non verranno eseguiti in parallelo , se uno ha bisogno per iniziare a quando l'altro è in esecuzione, si dovranno attendere fino a quando il primo ad iniziare è completa. Questo rende le modifiche alla risorsa condivisa " AccountBalance " thread-safe .