2024-08-04
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/1970621199

回答

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()