Ich brauche Hilfe, die Vorteile der Verwendung von CountDownLatch über traditionelle Warte-Benachrichtigung zu verstehen. Ich denke, notifyAll() tut in der Tat das gleiche, und es scheint einfacher zu verwenden (vielleicht wegen der Vertrautheit).Unterschied zwischen Warten-Benachrichtigen und CountDownLatch
Was ist der Unterschied zwischen wait() und await() von CountDownLatch?
Danke!
EDIT: Ich denke, ich brauche meine Fragen umformulieren:
Await() laut docs sagt:
der aktuelle Thread Ursachen zu warten, bis die Verriegelung bis auf Null gezählt hat , außer der Thread ist unterbrochen.
Für mich ist es schwer, den Unterschied zwischen wait() und warten() zu sehen - erwarten() ist in der Tat mit wait() unter Abdeckungen und scheint, gibt es eine implizite notifyAll(), wenn Zählung Null erreicht.
Was ich fragen wollte war, warum sollte ich nicht einfach einen wait-notifyAll() -Mechanismus (mit meiner eigenen Zählervariablenverarbeitung) verwenden, statt CountDownLatch zu verwenden?
Hier ist ein offensichtlicher Unterschied ... wenn Thread B "notifyAll()" aufruft, bevor Thread A "wait()" aufruft, wartet Thread A für immer; Wenn jedoch Thread B "countDown()" aufruft, bevor Thread A "await()" aufruft, wird Thread A ohne Warten fortgesetzt. – yshavit