方法一、继承Thread类
class thread1 extends Thread{
public void run(){
//重写run方法
}
}
public static void main(String[] args) {
thread1 t1=new thread1();
ti.start();
}
这种方法不推荐使用。
1、如果一个类继承了Thread就无法继承其他类。
2、设置任务(run方法)与运行线程未分离。
3、如果要运行多个线程,就要为每个线程创建一个类,代价太大。
方法二、
类实现Runnable接口。这个方法解决了上一个方法的问题,一个类可以实现多个接口,并且将任务执行与线程运行解耦合。
public class RunnableClass implements Runnable{
@Override
public void run() {
for(int i=0;i<5;i++)
System.out.println(Thread.currentThread().getName()+i+" class");
}
}
RunnableClass a=new RunnableClass();
new Thread(a).start();
方法三、lambda表达式直接创建Runnable的实例,放入Thread中。
Runnable r=()->{//此处设置线程任务
};
Thread t3=new Thread(r);
t3.start();