实现Runnable接口比继承Thread类所具有的优势:
1.避免了单继承的局限性
一个类只能继承一个类(一个子类只能有一个父类),类继承了Thread类就不能继承其他的类。
而实现了Runnable接口,还可以继承其他的类,实现其他的接口。
2.增强了程序的扩展性,降低了程序的耦合性(解耦),代码和线程独立。
实现Runnable接口的方式,把设置线程任务和开启新线程进行了分离(解耦)
实现类中,重写了run方法:用来设置线程任务
创建Thread类对象,调用start方法:用来开启新线程
3.线程池只能放入实现Runable或Callable类线程,不能直接放入继承Thread的类。