可运行的对象

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。