[英]notify() -> all of the threads in wait set must exit
同樣,通知不會因中斷而丟失。 假設一組s線程在對象m的等待集中,另一個線程對m執行notify。 然后:
a) s 中至少有一個線程必須從等待中正常返回,或
b) s 中的所有線程必須通過拋出 InterruptedException 退出等待
這讓我感到驚訝,因為我知道notify()
只喚醒一個線程,所以b)不可能發生。 b)選項在我看來完全沒有意義,因為除了暗示notify()
的行為類似於notifyAll()
,它還應該中斷所有等待線程。
問:這一段有錯嗎? 如果不是,那為什么不呢?
s
所有線程必須通過拋出 InterruptedException 退出等待
這意味着所有等待s
線程都被中斷了。
b) 表示如果所有線程都被中斷,則沒有線程會因為被中斷而正常從wait()
喚醒。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.