A szinkronizáció koordinálja a szálak hozzáférését a megosztott megváltoztatható állapothoz, hogy a műveletek ne keveredjenek meg veszélyesen, megakadályozva a race condition jelenségét. A Java több mechanizmust kínál, a beépített synchronized kulcsszótól az explicit zárakig és a lock-free atomicokig.
synchronized — kölcsönös kizárás (intrinsic locks)
{
balance;
{
(balance >= amount) {
balance -= amount;
}
}
{
() {
balance += amount;
}
}
}
