Re: 一個關於thread的問題

看板java作者 (XD)時間19年前 (2006/07/15 02:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《oishii (喔帥)》之銘言: : 在上面的程式裡,把notify()換成notifyAll(),甚至兩者都不要的結果都是一樣的。 : 我的問題是,當notifyAll()被呼叫時,正在wait的三個thread會被awake, : 但只有一個thread可以執行synchronized區塊內的程式,這時候另外的兩個thread : 是處於什麼樣的狀態呢?是wait嗎?還是runnable? 沒有 thread 在 bb 的 waiting list 裡面,該 wait() 並不是 bb 的, 所以有沒有呼叫 notify 或 notifyAll 當然都一樣。 後兩個 thread 會 block 住是因為都 synchronized 了 bb 的 instance。 : 另外,如果把程式碼中的notifyAll()換成notify(), : 當這一個thread從同步區塊內離開之後,並沒有再呼叫notify(), : 那麼在wait狀態之下的thread也會自己回到runnable狀態嗎? : 對於thread的這個部分感到困擾,還請版上的大大們協助解答了,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.22.65.133
文章代碼(AID): #14jztb_a (java)
文章代碼(AID): #14jztb_a (java)