Tôi cần một số trợ giúp để hiểu những lợi thế của việc sử dụng CountDownLatch qua thông báo chờ đợi truyền thống. Tôi nghĩ rằng notifyAll() thực sự làm điều tương tự, và nó có vẻ dễ dàng hơn để sử dụng (có thể vì sự quen thuộc).Sự khác biệt giữa việc chờ thông báo và CountDownLatch
Ngoài ra, sự khác nhau giữa wait() và await() từ CountDownLatch là gì?
Cảm ơn!
EDIT: Tôi đoán tôi cần phải nói lại câu hỏi của tôi:
chờ đợi() theo các tài liệu nói:
Nguyên nhân xử lí hiện tại để chờ cho đến khi chốt đã đếm xuống không , trừ khi chuỗi bị gián đoạn.
Đối với tôi, khó có thể thấy sự khác biệt giữa wait() và await() - await() thực sự đang chờ wait() và có vẻ như có thông báo ngầm() khi đếm đến 0.
Điều tôi muốn hỏi là, tại sao tôi không nên sử dụng cơ chế wait-notifyAll() (với xử lý biến số lượt truy cập của riêng tôi), thay vì dùng CountDownLatch?
Dưới đây là một sự khác biệt rõ ràng ... nếu chuỗi B gọi 'notifyAll()' trước khi chuỗi A gọi 'wait()', luồng A sẽ chờ mãi mãi; nhưng nếu thread B gọi 'countDown()' trước khi thread A gọi 'await()', luồng A sẽ tiếp tục mà không cần chờ đợi. – yshavit