回答
run()
run()
是 Thread 的一个实例方法,它实际上是线程执行的入口,但是它本身不会启动一个新的线程,它仅仅只是一个普通的方法调用。
public class ThreadTest {
public static void main(String[] args) {
MyRunnable runnable = new MyRunnable();
runnable.run();
}
static class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("Running in " + Thread.currentThread().getName());
}
}
}
执行结果:
Running in main
所以,在这里 run() 仅仅只是一个普通方法的调用,并不会创建新的线程,方法在 main
里面执行。
start()
与 run()
不同,start()
的会启动一个新的线程,然后由 JVM 来调用这个线程的 run()
。