兩種方式,建立新的線程:html
實現 Runnable 接口,Runnable 接口定義了一個方法:run。run 方法中的代碼,將在建立的線程中執行。實現了 Runnable 接口的對象,做爲 Thread 構造方法的參數。java
public class HelloRunnable implements Runnable { public void run() { System.out.println("Hello from a thread!"); } public static void main(String args[]) { (new Thread(new HelloRunnable())).start(); } }
繼承 Thread。Thread 類實現了 Runnable 接口,儘管它的 run 方法內什麼也沒有。一個類能夠繼承自 Thread,並重寫 run 方法。oracle
public class HelloThread extends Thread { public void run() { System.out.println("Hello from a thread!"); } public static void main(String args[]) { (new HelloThread()).start(); } }
注意,兩個例子均調用了 Thread.start 去建立一個新的線程線程
實現 Runnable 接口,是經常使用的建立新線程的方式。code
實現 Runnable 接口的類,能夠繼承自其它的類,而不單單是 Thread。更加靈活。htm
適用於一些高階線程管理的 APIs對象
繼承 Thread,用起來彷佛更加簡單一點。缺點是,沒法繼承其它類 (java)繼承
建議使用第一種。接口