可執行的物件

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。