可執行的物件
Runnable
介面定義了一個方法 run()
,用於包含執行緒中執行的程式碼。
Runnable
物件被傳遞給 Thread
建構函式。並呼叫 Thread 的 start()
方法。
例
public class HelloRunnable implements Runnable {
@Override
public void run() {
System.out.println("Hello from a thread");
}
public static void main(String[] args) {
new Thread(new HelloRunnable()).start();
}
}
Java8 中的示例:
public static void main(String[] args) {
Runnable r = () -> System.out.println("Hello world");
new Thread(r).start();
}
Runnable vs Thread 子類
Runnable
物件的使用更為通用,因為 Runnable
物件可以繼承 Thread
以外的類。
Thread
子類化在簡單的應用程式中更容易使用,但受限於你的任務類必須是 Thread
的後代這一事實。
Runnable
物件適用於高階執行緒管理 API。