Siema na wstepie::
metody: wait() / notifyAll()
Po pierwsze wolno tych metod używać tylko w sekcji synchronized, tudzież w metodach synchronizowanych i wołać je wolno tylko z obiektów na których odbywa się synchronizacja.
Co robi notifyAll()? notifyAll(). Ma więc obudzić wszystkie wątki które czekają na sygnał na danym monitorze. Czyli jeśli jakiś wątek czeka w kolejce, ze względu na blokade w bloku synchronizowanym to zostanie on uruchomiony.
Czy synchronizacja związana z "blokada2" zapewnia że notifyAll() wykona się zawsze na końcu?
wykona się w miejscu którym zaznaczyłeś, tutaj podczas bloku synchronizowanego kiedy go powołasz