1.第一种创建方式--继承Thread类
(1).步骤:
a.定义类继承Thread类 b.覆写Thread类中的run方法
c.调用线程的start方法(该方法的两个作用是:启动线程和调用run方法)
(2).代码实现:
2.第一种创建方式--实现Runnable接口
(1).步骤:
a.定义类实现Runnable接口 b.覆写Runnable中的run方法
c.通过Thread类建立线程对象 d.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
e.调用Thread类的start方法开启线程
(2).代码实现:
3.两种创建方式的比较:
继承方式可以直接使用this获取当前线程而不需使用Thread.currentThread()获取,而实现接口方式必须使用 Thread.currentThread获取当前线程。
因为继承方式已经继承了Thread类所以不能再继承其他父类。而实现方式避免了单继承的局限性。
在创建线程时一般推荐使用实现接口的方式来创建线程。
4.为什么要实现run方法?
将自定义代码存储到run方法中,让线程运行。
Thread类用于描述线程,该类定义了一个功能,用于存储线程要运行的代码该存储功能就是run方法。