Junior — Middle
Wat is het verschil tussen de methoden notify en notifyAll in de context van thread-synchronisatie?
sobes.tech AI
Antwoord van AI
In Java worden de methoden notify en notifyAll gebruikt om threads wakker te maken die wachten op het monitor van een object (via wait).
notify()wekt een willekeurige wachtende thread op dat object.notifyAll()wekt alle wachtende threads op dat object.
Het gebruik van notify is geschikt wanneer het voldoende is om één thread wakker te maken, bijvoorbeeld bij het implementeren van een wachtrij met één consument. notifyAll is handig wanneer alle threads wakker gemaakt moeten worden zodat ze de voorwaarde kunnen controleren en verder kunnen werken, bijvoorbeeld bij complexe synchronisatie-logica.
Het is belangrijk om te onthouden dat de gewekte threads niet meteen beginnen met uitvoeren — ze gaan naar een gereedstaat en wachten om het monitor te verkrijgen.