第一种方式:
继承Thread,重写run方法,将要执行的逻辑放入run方法中,然后创建线程对象调用stat
方法来开启线程。
package Thread;
public class Demo1 {
public static void main(String[] args) {
TDemo t=new TDemo();
t.start();
}
}
class TDemo extends Thread {
public void run() {
for(int i=0;i<10;i++){
System.out.println(i);
}
}
}
JAVA中类之间是单继承的,如果一个类继承了其他类,就不能再继承Thread类,也就无法再定义线程,因此引出第二种定义线程的方法
第二种方式
实现Runnable接口,重写run方法,利用Runnable对象构建Thread类对象,调用start方法来启动线程
package Thread;
public class Demo2 {
public static void main(String[] args) {
TDemo2 td=new TDemo2();
Thread t=new Thread(td);
t.start();
}
}
class TDemo2 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}