Synchronizacja koordynuje dostęp wątków do współdzielonego mutable'a stanu tak, aby operacje nie przeplatały się niebezpiecznie, zapobiegając race conditions. Java oferuje kilka mechanizmów, od wbudowanego słowa kluczowego synchronized po jawne locki i atomowe operacje bez locków.
synchronized — wzajemne wykluczanie (intrinsic locks)
{
balance;
{
(balance >= amount) {
balance -= amount;
}
}
{
() {
balance += amount;
}
}
}
