Potrzebuję pomocy w zrozumieniu zalet używania CountDownLatch zamiast tradycyjnego wait-notify. Myślę, że funkcja notifyAll() rzeczywiście robi to samo i wydaje się łatwiejsza w użyciu (może ze względu na znajomość).Różnica między oczekiwaniem-zapowiedzią a CountDownLatch
Jaka jest różnica między oczekiwaniem() a oczekiwaniem() z CountDownLatch?
Dzięki!
EDIT: Chyba trzeba przeformułować swoje zapytania:
czekają() zgodnie z docs mówi:
Powoduje bieżący wątek do czekać aż zatrzask jest odliczany do zera , chyba że wątek zostanie przerwany.
Dla mnie trudno dostrzec różnicę między wait() i czekają() - czekają() jest rzeczywiście za pomocą wait() pod osłonami, i wydaje się, że jest niejawna notifyAll(), gdy licznik osiągnął zero.
Chciałem zapytać, dlaczego nie powinienem po prostu użyć mechanizmu wait-notifyAll() (z moim własnym przetwarzaniem licznika), zamiast używać CountDownLatch?
Oto jedna oczywista różnica ... jeśli wątek B nazywa 'notifyAll()' zanim wątek A wywoła 'wait()', wątek A będzie czekać na zawsze; ale jeśli wątek B wywołuje 'countDown()' zanim wątek A wywoła 'await()', wątek A będzie kontynuowany bez oczekiwania. – yshavit