Actually 2 questions.....
1)
class A extends
Thread {
private boolean done;
public void setDone(boolean done) {this.done = done;}
public void run() {
synchronized (this) {
while (!done) {
try {wait();} catch (InterruptedException ie){}
}}}
public static void main(
String[] args) {
A a1 = new A();
long startTime = System.currentTimeMillis();
a1.start();
System.out.print(System.currentTimeMillis() - startTime);
}}
Which is a possible result of attempting to compile and run the program?
a. The number printed is greater than or equal to 0
b. The synchronized block inside the run method is not necessary
c. This program runs to completion after the elapsed time is printed
d. Compile-time error
e. Run-time error
f. None of the above
the given answer is a, Howz that possible, but he has given the explanation which I had thought earlier during the exam "The notify method is never invoked on thread a1; so it will sleep forever and the program will not complete normally".
was the answer not F ??
2) A timeout of zero will allow Thread.join to wait forever if necessary
Is that "necessary" that he refers above is the state of interruption that may occur ?
~ Shalini
[ January 08, 2004: Message edited by: Taurean Lord ]