Hãy tưởng tượng tôi có 3 luồng với điều kiện chờ và chuỗi thứ 4 có điều kiện thông báo.Chủ đề nào thông báo thức dậy?
Bây giờ, tất cả 3 chuỗi chờ chạy và nhập trạng thái chờ. Một khi điều này được thực hiện, thread thứ 4 chạy và các cuộc gọi thông báo một lần.
Thông báo sẽ xác định chủ đề cần đánh thức như thế nào? Đây có phải là chủ đề được gọi là chủ đề chờ đầu tiên, chủ đề được gọi là chờ đợi cuối cùng hay là nó dựa trên một số điều kiện khác?
Giả sử rằng việc chờ và thông báo sử dụng cùng một khóa.
Một cách ngẫu nhiên, ít nhất là theo ý bạn. Từ đó javadocs: "Nếu bất kỳ chủ đề đang chờ đợi đối tượng này, một trong số chúng được chọn để được đánh thức. Sự lựa chọn là tùy ý và xảy ra theo quyết định của việc thực hiện." – yshavit