可运行的对象
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。