Re: 一個關於thread的問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):