对于创建线程的方法网上众说纷纭,而 Oracle 官方给出的创建线程的方式只有两种,一种是通过继承 Thread 类,另一种是实现 Runnable 接口。
创建线程的本质
Java 创建的本质是通过构造 Thread 对象 而官方文档给的两种方式本质其实是一种方式
继承 Thread 和 实现 Runnable 接口的不同点
- 继承 Thread. 继承 Thread 是通过覆盖 Thread 类的 run 方法。而实现 Runable 接口,则是通过将 Runnable 放到 Thread 类的构造器中
- 如果通过继承 Thread 创建线程,则需要维护对象的开销
“创建线程”的其他方式
对于创建线程的方式众说纷纭,大家可能听过创建线程的方式多的有7-8种,甚至更多。 诸如通过线程池创建线程、实现CallAble接口、实现Future等。这些方法在底层本质上还是通过构造 Thread 对象实现新建线程