Мне нужна помощь в понимании преимуществ использования CountDownLatch над традиционным уведомлением о ожидании. Я думаю, что notifyAll() действительно делает то же самое, и это кажется более простым в использовании (возможно, из-за знакомства).Разница между wait-notify и CountDownLatch
Кроме того, в чем разница между wait() и wait() от CountDownLatch?
Спасибо!
EDIT: Я думаю, мне нужно перефразировать мои запросы:
ОЖИДАНИЕ() согласно документации говорит:
Вызывает текущий поток ждать, пока защелка не отсчитывали до нуля , если поток не прерывается.
Для меня это трудно увидеть разницу между ожиданием() и ждать() - ждать() действительно используя ожидание() под кожухами, и, кажется, есть неявное notifyAll(), когда счетчик достигнет нуля.
Что я хотел спросить, почему я не должен просто использовать механизм wait-notifyAll() (с моей обработкой переменной счетчика), а не для CountDownLatch?
Вот одна очевидная разница ... если поток B вызывает 'notifyAll()' перед потоком A вызывает 'wait()', поток A будет ждать вечно; но если поток B называет 'countDown()' перед потоком A вызывает 'await()', поток A будет продолжаться, не ожидая. – yshavit