Thread类中run()和start()的区别
2026/5/23 22:53:35 网站建设 项目流程

在Java中, run() 和 start() 方法是Thread类的两个关键方法,它们有本质区别:

1.run()方法:

  • run()方法是线程要执行的任务代码所在的方法。
  • 直接调用run()方法,它会在当前线程中执行,而不会启动新的线程。也就是说,它就像普通的实例方法一样被调用,并没有多线程的特性。

2.start()方法

  • start()方法用于启动一个新的线程。当调用start()方法时,Java虚拟机会创建一个新的线程,然后在这个新线程中调用run()方法。

代码演示:

class MyThread extends Thread{ @Override public void run() { System.out.println("当前线程是"+Thread.currentThread().getName()); } } public class demo1 { public static void main(String[] args) { Thread t1=new MyThread(); System.out.println("直接调用run()方法"); t1.run(); System.out.println("直接调用start()方法"); t1.start(); } }

运行结果:

总结:

  • 调用start()方法会启动一个新线程,并在这个线程中执行run()方法,函数在调用后会立即返回,不需要等待线程执行完成。
  • 调用run()方法则不会启动新线程,而是在当前线程中同步执行run()方法,函数也需要在方法执行完毕后才会返回。

注意start()只能执行一次,run()可以反复多次执行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询