confondi i concetti: synchronized ti protegge da eventuali accessi contemporanei da parte di due thread differenti.

notify viene utilizzato per indicare ad un thread in attesa di un evento che deve risvegliarsi, ma non è detto che il thread che è in attesa si trovi in un blocco sync!!