作者sensibility (XD)
看板java
标题Re: 一个关於thread的问题
时间Sat Jul 15 02:19:35 2006
※ 引述《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