可以使用两种方式创建线程:
- 通过扩展 Thread 类
- 通过实现 Runnable 接口
但是,两种方式之间的主要区别如下:
- 通过扩展
Thread
类,不能扩展任何其他类,因为 Java 在实现Runnable
接口时不允许多重继承;还可以扩展其他基类(如果需要)。 - 通过扩展
Thread
类,每个线程在实现Runnable
接口的同时创建唯一的对象并与之关联;多个线程共享同一个对象 Thread
类提供了各种内置方法,例如getPriority()
、isAlive
等等,而Runnable
接口提供了一个方法,即run()
。