创建和启动
继承Thread
- 定义Thread的子类,并且重写run方法,run方法体内的内容就是线程需要完成的任务。
- 创建Thread子类的对象。
- 使用start方法执行线程任务。
public class MyThread extends Thread {
@Override
public void run() {
// 方法体
}
}
new MyThread().start();
实现Runnable
- 定义Runnable接口的实现类,并重写run方法。
- 创建Runnable接口实现类的对象,并且把这个对象当做target参数,传入创建Thread对象。
- 使用start方法执行线程任务。
public class MyThread implements Runnable {
@Override
public void run() {
// 方法体
}
}
new Thread(new MyThread()).start();
两种实现方式的差别
继承Thread
优点:可以较为方便的直接使用当前对象(this)
缺点:继承了Thread类之后无法再继承其他类
实现Runnable接口
优点:因为是用实现所以还可以继承其他类
缺点:编程稍微复杂一点