联系:
1.使用 Runnable 可以配合 Thread 把【线程】和【任务】(要执行的代码)分开
Thread 代表线程
Runnable 可运行的任务(线程要执行的代码)
例如:
public void testForRunnable(){
Runnable runnable = new Runnable() {
public void run(){
// 要执行的任务
}
};
// 创建线程对象
Thread t = new Thread( runnable );
// 启动线程
t.start();
}
2.利用Runnable类的实例作为Thread构造函数参数,该实例会被赋值给Thread类实例的target属性,启动线程时实际上都会调用Thread类的run方法。
结论:
- 用 Runnable 更容易与线程池等高级 API 配合
- 用 Runnable 让任务类脱离了 Thread 继承体系,更灵活