Sobes.tech
Junior — Middle

Koja je razlika između metoda notify i notifyAll u kontekstu sinhronizacije niti?

sobes.tech АИ

Одговор од АИ

U Javi se metode notify i notifyAll koriste za buđenje niti koje čekaju na monitoru objekta (kroz wait).

  • notify() budi slučajnu nit koja čeka na tom objektu.
  • notifyAll() budi sve niti koje čekaju na tom objektu.

Korišćenje notify je prikladno kada je dovoljno probuditi jednu nit, na primer, pri implementaciji reda sa jednim potrošačem. notifyAll je korisno kada je potrebno probuditi sve niti da bi proverile uslov i nastavile sa radom, na primer, u složenoj logici sinhronizacije.

Važno je zapamtiti da probuđene niti ne počinju odmah sa izvršavanjem — prelaze u stanje spremnosti i čekaju da dobiju monitor.