当前位置: 首页> 娱乐> 影视 > 芜湖今天刚刚发生的新闻_国内免费的ip地址_网店代运营骗局_上海百度推广公司

芜湖今天刚刚发生的新闻_国内免费的ip地址_网店代运营骗局_上海百度推广公司

时间:2025/7/10 17:22:05来源:https://blog.csdn.net/caoli201314/article/details/143736993 浏览次数:0次
芜湖今天刚刚发生的新闻_国内免费的ip地址_网店代运营骗局_上海百度推广公司

大家好,我是锋哥。今天分享关于【java多线程 run() 和 start() 区别?】面试题。希望对大家有帮助;

java多线程 run() 和 start() 区别?

在 Java 中,run()start() 都与线程相关,但它们的作用和使用方式有很大的区别。

1. start() 方法

start()Thread 类的一个方法,用于启动一个新的线程。它的作用是:

  • 启动线程:调用 start() 方法会创建一个新的线程,并且会自动调用 run() 方法。换句话说,start() 会让线程进入“就绪”状态,准备运行。
  • 不能直接调用 run()start() 会自动调用 run() 方法,因此,调用 run() 方法不会创建新的线程,它只是一个普通的方法调用。

调用 start() 方法时,线程会进入一个新的执行路径,也就是新的执行线程会开始执行 run() 方法中的代码。

示例

public class MyThread extends Thread {@Overridepublic void run() {System.out.println("Thread is running!");}public static void main(String[] args) {MyThread thread = new MyThread();thread.start();  // 启动线程,内部会调用 run()}
}

2. run() 方法

run()Thread 类的一个方法,用于定义线程执行的具体任务。当你重写 run() 方法时,它包含了你希望线程执行的代码。

  • 普通方法:如果你直接调用 run() 方法,它不会启动新的线程,而是会像普通方法一样在当前线程中执行。也就是说,run() 方法的调用会在当前线程中执行代码,而不会创建一个新的线程。

  • 线程任务:通常,run() 方法被用来定义线程实际要执行的任务,它通常会在 start() 方法内部被调用。

示例

public class MyThread extends Thread {@Overridepublic void run() {System.out.println("Thread is running!");}public static void main(String[] args) {MyThread thread = new MyThread();thread.run();  // 直接调用 run() 方法,在当前线程执行,而不是启动新线程}
}

3. start() 和 run() 的关键区别

特性start()run()
作用启动一个新线程并调用 run() 方法。只是定义线程要执行的任务,在当前线程中执行。
线程状态会启动一个新的线程,进入就绪状态。不会启动新线程,直接在当前线程中执行。
调用时机调用时会触发 Thread 类的内部机制,创建新线程。调用时只是普通方法调用,不会创建新线程。
线程执行新线程会并行执行 run() 方法中的代码。当前线程会执行 run() 方法中的代码。

总结

  • start() 方法会启动一个新线程,并自动调用 run() 方法。
  • run() 方法定义了线程要执行的任务,但它本身不会创建新的线程。
  • run() 方法只能在新的线程内通过 start() 被调用;而如果直接调用 run(),它就只是普通的同步方法,不会启动新线程。

因此,正确的用法是:

  • 使用 start() 来启动线程,启动后由系统来调用 run() 方法。
  • 不要直接调用 run(),否则它就只是一个普通的同步方法调用。
关键字:芜湖今天刚刚发生的新闻_国内免费的ip地址_网店代运营骗局_上海百度推广公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: