文章目录
同时用Thread类和Runnable接口的方式 创建线程代码
- 同时用Thread类和Runnable接口的方式 创建线程代码
- 总结实现线程方式
如下所示, 同时用Runnable接口和Thread类的方式去创建线程
public class BothRunnableThread {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(" from Runnable ");
}
}) {
@Override
public void run() {
System.out.println("from thread");
}
}.start();
}
}
运行后,控制台打印如下. 说明了Runnable接口的匿名内部类的方式是没有执行的
根据Java的语法规定, 如果同时传入了target ,同时重写run方法. 由于Thread类的run方法是被重写过了的, 那么 Thread类中的run方法是完全被覆盖了的, 不会执行下面的target方法, 因此不会走实现Runnable接口的方法
根据oracle官方, 实现线程方式为如下的两种 实现Runnable接口 继承Thread类
但更为准确的讲, 创建线程的方式, 只有一种, 那就是构造Thread类, 而实现线程的执行单元有两种方式
- 实现Runnable 接口的run方法, 把Runnable实例传递给Thread类
- 重写Thread 的Run方法 (继承Thread类) .