问题:
class Computation extends Thread {
private int num;
private boolean isComplete;
private int result;
public Computation(int num) { this.num = num; }
public synchronized void run() {
result = num * 2;
isComplete = true;
notify();
}
public synchronized int getResult() {
while (!isComplete) {
try {
wait();
} catch (InterruptedException e) { }
}
return result;
}
public static void main(String[] args) {
Computation[] computations = new Computation [4];
for (int i = 0; i < computations.length; i++) {
computations[i] = new Computation(i);
computations[i] .start();
}
for (Computation c : computations)
System.out.print(c.getResult() +“ “);
}
}
What is the result?()
A . The code will deadlock.
B . The code may run with no output.
C . An exception is thrown at runtime.
D . The code may run with output “0 6”.
E . The code may run with output “2 0 6 4‟.
F . The code may ruin with output “0 2 4 6”.
class Computation extends Thread {
private int num;
private boolean isComplete;
private int result;
public Computation(int num) { this.num = num; }
public synchronized void run() {
result = num * 2;
isComplete = true;
notify();
}
public synchronized int getResult() {
while (!isComplete) {
try {
wait();
} catch (InterruptedException e) { }
}
return result;
}
public static void main(String[] args) {
Computation[] computations = new Computation [4];
for (int i = 0; i < computations.length; i++) {
computations[i] = new Computation(i);
computations[i] .start();
}
for (Computation c : computations)
System.out.print(c.getResult() +“ “);
}
}
What is the result?()
● 参考解析
本题暂无解析