SCJP題庫第227題

 
Given:
1. public class TestOne implements Runnable{
2.   public static void main (String[] args)throws Exception{
3.     Thread t = new Thread(new TestOne());
4.     t.start();
5.     System.out.pririt("Started");
6.     t.join();
7.     System.out.print("Complete");
8.   }
9.   public void run(){
10.     for(int i=0; i<4; i++){
11.       System.out.print(i);
12.     }
13.  }
14.}
What can be a result?


A. Compilation fails.
B. An exception is thrown at runtime.
C. The code executes and prints "StartedComplete".
D. The code executes and prints "StartedComplete0123".
E. The code executes and prints "Started0123Complete".
Ans: E

解說: 這個類別實作了Runnable介面,實作了run方法供執行緒執行,這個類別在main的方法是一條主執行緒,後建立了t執行緒(第3行)來執行第9行的run方法,第4行t.start()方法之後,main執行緒與t執行緒同時執行,main執行緒應該還是會先於t執行緒執行第5行的輸出(印出Started),第6行下了一個指令t.join(),這個指令的意思是讓main執行緒加到t執行緒的後面(join是結合的意思),也就是,必須等t執行緒執行完(印出0123),main執行緒才會從第7行再開始跑,印出Complete。

Comments

Popular posts from this blog

Android-使用webview在V3版的Google地圖GPS定位