`synchronized` używa wbudowanych monitorów i automatycznie zwalnia blokadę. `ReentrantLock` to jawny lock z funkcjami typu `tryLock`, polityką fairness i możliwością przerwania oczekiwania — ale musisz go zwolnić w `finally`. Oba są reentrant.
Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:
Krótki przykład (szablon do wyjaśniania):
// Example: discuss trade-offs for "`synchronized`-vs-`reentrantlock`:-jakie-są-różn"
function explain() {
// Start from the core idea:
// `synchronized` używa wbudowanych monitorów i automatycznie zwalnia blokadę. `ReentrantLock
}