线程常用的创建方式,第一种是使用Runnable。第二种是继承Thread类型。第三种实现Callable接口,第四种 使用线程池
实现Runnable接口更好一些。
1,因为实现Runnable接口可以避免Java单继承的局限性。当一个类继承了Thread,就不可以在继承其他类了。而当一个类实现了Runnable,它一样可以继承其他类。
2,更符合面向对象的设计。
run()方法的作用是用来封装线程要运行的代码。那么run()方法所属的对象,就是线程任务对象。Thread类的子类对象即使线程对象,又是线程任务对象。耦合性很强。有了Runnable接口,可以将线程任务和线程进行解耦,提高了程序的扩展性。