Sincronizzazione coordina l'accesso dei thread allo stato mutevole condiviso in modo che le operazioni non si intreccino pericolosamente, prevenendo race condition. Java offre diversi meccanismi, dalla parola chiave synchronized integrata ai lock espliciti e agli atomic lock-free.
synchronized — esclusione reciproca (intrinsic lock)
{
balance;
{
(balance >= amount) {
balance -= amount;
}
}
{
() {
balance += amount;
}
}
}
