| Author |
Wait() doubt
|
Mamadou Touré
Ranch Hand
Joined: Dec 27, 2007
Posts: 189
|
|
This question is from the examulator mock exam public class Agg{ public static void main(String argv[]){ Agg a = new Agg(); a.go(); } public void go(){ DSRoss ds1 = new DSRoss("one"); ds1.start(); } } class DSRoss extends Thread{ private String sTname=""; DSRoss(String s){ sTname = s; } public void run(){ notwait(); System.out.println("finished"); } public void notwait(){ while(true){ try{ System.out.println("waiting"); wait(); }catch(InterruptedException ie){} System.out.println(sTname); notifyAll(); } } } 1 It will cause a compile time error 2 Compilation and output of "waiting" 3 Compilation and output of "waiting" followed by "finished" 4 Runtime error, an exception will be thrown I choosed 1 (compile time error) because the wait is done without synchronize, but in the answer it's said the correct response is 4 (Runtime error) for the same reason (wait without synchronize). When I try to compile this code, it shows a compile error (as I I reponded). So is the java.lang.IllegalMonitorStateException compile time or a runtime error ?
|
SCJP 5 (76%)
SCWCD 5 (86%)
SCBCD 5(70%)
--------------------
"The greatest glory in living lies not in never falling, but in raising every time we fall.".. Nelson Mandela
|
 |
Ralph Jaus
Ranch Hand
Joined: Apr 27, 2008
Posts: 342
|
|
I tried the code -> compiles without problems, but throws an llegalMonitorStateException. If you look in its API description, you see, that it's derived from runtime exception, so it is an unchecked exception. [ July 19, 2008: Message edited by: Ralph Jaus ]
|
SCJP 5 (98%) - SCBCD 5 (98%)
|
 |
 |
|
|
subject: Wait() doubt
|
|
|