一、继承Thread类
创建类继承Thread类,并重写run()方法,通过start()启动线程。以继承的方式创建的线程可以使用当前类来获取线程的名称、状态、优先级等相关信息,因为其继承了Thread类的相关方法。
public class MyThread extends Thread{
@Override
public void run(){
//......
//......
//业务代码
}
}
public class Test{
public static void main(){
//创建对象
MyThread thread = new MyThread();
//启动线程
thread.start();
//获取当前线程名称
thread.getName()
}
}
二、实现Runnable接口
在第一种方法中,是通过继承的方式创建线程,而Java中的类是不支持多继承,所以用第一种方式创建线程那么该类就无法在继承其他类,但是在Java中一个类可以实现多个接口,而 第二种方式就是通过实现Runnable接口创建线程,这种方式相较第一种来说更加的灵活,更契合面向对象思想。
在Thread类中为我们提供了一个以Runnable为参数的构造器,此方式就是以此构造器创建线程。
//Thread类部分源码
public Thread(Runnable target) {
init(null, target, "Thread-" + nextT