以下代码为例:
public class ThreadDemo3 {
static class MyThread extends Thread{
@Override
public void run() {
System.out.println("线程");
}
}
public static void main(String[] args) {
Thread t = new MyThread();
t.run();
//t.start();
}
}
两种执行出来的结果都为“线程”
从运行结果来看,好像没什么区别,但其两种调用有本质的区别:
t.run()——这里只是一个普通的方法调用,没有创建新的线程,输出语句是在原线程中执行的 t.start()——这里是要创建一个新的线程,有新的线程来执行输出