2009年2月26日 星期四

第221題

Given:
7. void waitForSignal(){
8. Object obj = new Object();
9. synchronized(Thread.currentThread()){
10. obj.wait();
11. obj.notify();
12. }
13. }

Which statement is true?

A. This code can throw an InterruptedException.
B. This code can throw an IllegalMonitorStateException.
C. This code can throw a TimeoutException after ten minutes.
D. Reversing the order of obj.wait() and obj.notify() might cause this method to complete normally.
E. A call to notify() or notifyAll() from another thread might cause this method to complete normally.
F. This code does NOT compile unless "obj.wait()" is replaced with "((Thread) obj).wait()".

答案:B

參考:13-5 執行緒的互動處理
----------------------------------------------------------
9. synchronized(Thread.currentThread()){
改9. synchronized(obj ){ 就ok

沒有留言:

張貼留言