PHP中文网2017-04-18 10:55:24
rb5 的 object.notify(); 呼叫時 rb4 還沒有進入 wait 狀態,因為還在等待鎖。執行緒 start 不代表馬上會自行 run(),也就是說後 start() 的執行緒的 run() 很有可能會先執行。
迷茫2017-04-18 10:55:24
rb4
在运行获得object
的对象锁,输出T1 start!
,然后调用wait()
,该方法会让rb4
挂起,同时释放锁,阻塞。 这时候rb5
获得锁,输出T2 start!
。然后调用object.notify();
,虽然这里打算让rb4
运行,但是rb5
的锁并没有释放,所以rb4
还是处于阻塞。 rb5
还是继续运行,输出T2 end!
。 rb5
运行结束,释放锁, rb4
运行输出T1 end!
。