1 oracle官方说明
2 两种实现方式的本质对比
3 两种实现方式的优缺点
1 oracle官方说明
oracle官网地址 https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
- 实现Runnable接口
- 继承Thread类,并重写run方法

2 两种实现方式的本质对比
- runnable接口源码解析,我们可以看到最终执行的是传入接口的run方法

- 继承thread类,因为子类方法会覆盖父类的方法,所以最终执行的是子类中run方法的内容

- 结论:两种方法最终执行的都是Thread类的run方法
3 两种实现方式的优缺点
- 继承Thread类的缺点,(相对于实现接口)
- 从架构的角度来看,线程具体执行的任务,应该和线程的创建是解耦的,不应该把线程的创建和要执行的内容混为一谈
- 每次想要创建一个任务只能每次新建一个线程,而创建线程损耗较大,不如实现runnable接口好
- 由于java只支持单继承,限制了类的可拓展性
- 实现runnable接口的优点(相对与继承)
- runnable接口只关注线程要执行的内容
- 可以将runnable接口,传递给线程池复用,节省资源
java 创建线程的方法
原文:https://www.cnblogs.com/xiaodu9499/p/13284307.html