线程中run方法与start方法的差别

run()方法

run()方法是Runnable接口中定义的方法,Thread类实现了Runnable接口。

当你直接调用run()方法时,它会在当前线程中执行,而不会启动一个新的线程。也就是说,run()方法只是一个普通的方法调用,不会产生多线程的效果。

start()方法

start()方法用于启动一个新的线程。当你调用start()方法时,JVM会创建一个新的线程,并在这个新线程中调用run()方法。

start()方法会立即返回,不会等待run()方法执行完毕。新线程会并发执行。

public class runandstart  extends Thread  {


        @Override
        public void run() {
            System.out.println("当前线程: " + Thread.currentThread().getName());
        }

        public static void main(String[] args) {
            runandstart thread1 = new runandstart();
            runandstart thread2 = new runandstart();

            // 直接调用run()方法
            System.out.println("直接调用run()方法:");
            thread1.run();  // 在主线程中执行
            thread2.run();  // 在主线程中执行

            // 调用start()方法
            System.out.println("调用start()方法:");
            thread1.start();  // 启动一个新线程
            thread2.start();  // 启动另一个新线程
        }

}

线程中run方法与start方法的差别_第1张图片

你可能感兴趣的:(java,开发语言)