阿摩線上測驗 登入

申論題資訊

試卷:104年 - SCJP 201-244#99410
科目:OJCP(SCJP)
年份:104年
排序:0

申論題內容

236. Given: 
1. class Computation extends Thread{ 
2.
 3. private int num; 
4. private boolean isComplete; 
5. private int result; 
6.
 7. public Computation(int num){this.num = num;} 
8.
 9. public synchronized void run(){
 10. result = num * 2; 
11. isComplete = true; 
12. notify(); 
13. }
 14.
 15. public synchronized int getResult(){ 
16. while(!isComplete){ 
17. try{
 18. wait(); 
19. }catch(InterruptedException e){}
 20. } 
21. return result; 
22. }
 23.
 24.public static void main(String[] args){ 
 25. Computation[] computations = new Computation[4]; 
26. for(int i=0; i<computations.length; i++){ 
27. computations[i] = new Computation(i); 
28. computations[i].start(); 
29. } 
30. for(Computation c : computations)
 31. System.out.print(c.getResult() + " "); 
32. }
 33. } 
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 run with output "0 2 4 6".