# Unterschied notify() und notifyAll()



## Malcolm (28. Dez 2004)

Hallo,

Soviel ich weiss weckt mir notify() irgendeinen wartenden Thread, während mir notifyAll() alle wartenden Threads weckt. 

Und nun die Frage:

Angenommen ich habe einen Zähler der zwischen einem maximalen und minimalen Wert hin und her zählt. Thread1 zählt nach oben, Thread2 zählt nach unten. Stößt Thread1 an die obere bzw. Thread2 an die untere Grenze so wird der der Befehl wait ausgeführt. Nachdem der Zähler inkrementiert bzw. dekrementiert wurde wird mit Hilfe von notity() bzw. notifyAll() irgendeiner bzw. alle wartenden Threads geweckt. Kann mir einer sagen ob hier ein notify reicht oder ob ich ein notifyAll() unbedingt brauche um eine Verklemmung zu vermeiden. 

Ich wäre auch für ein Beispiel dankbar in dem ich notifyAll() anwenden muss. 

mfg Malcolm


----------



## bygones (28. Dez 2004)

wenn auf einem lock nur jeweils ein thread wartet langt notify. Falls aber mehrere Threads warten könnten und du willst alle aufwecken, dann nehm notifyAll


----------

