Synchronization điều phối việc các thread truy cập vào shared mutable state sao cho các thao tác không xen kẽ nhau một cách nguy hiểm, qua đó ngăn chặn race condition. Java cung cấp nhiều cơ chế, từ keyword synchronized có sẵn cho tới các explicit lock và các atomic lock-free.
synchronized — loại trừ lẫn nhau (intrinsic lock)
{
balance;
{
(balance >= amount) {
balance -= amount;
}
}
{
() {
balance += amount;
}
}
}
