首页 > Java > java教程 > 在Java中,什么时候调用Thread.run()而不是Thread.start()?

在Java中,什么时候调用Thread.run()而不是Thread.start()?

WBOY
发布: 2023-09-15 12:13:02
转载
1217 人浏览过

在Java中,什么时候调用Thread.run()而不是Thread.start()?

当我们在线程上调用 start() 方法时,它会导致线程开始执行,并且线程的 run() 方法会被调用Java 虚拟机(JVM)。如果我们直接调用 run() 方法,它将被视为线程类(或可运行接口)的正常重写方法,并且它将在当前线程的上下文中执行,而不是在新线程中执行。

示例

public class CallRunMethodTest extends Thread {
   @Override
   public void run() {
      System.out.println("In the run() method: " + Thread.currentThread().getName());
      for(int i = 0; i < 5 ; i++) {
         System.out.println("i: " + i);
         try {
            Thread.sleep(300);
         } catch (InterruptedException ie) {
            ie.printStackTrace();
         }
      }
  }
   public static void main(String[] args) {
      CallRunMethodTest t1 = new CallRunMethodTest();
      CallRunMethodTest t2 = new CallRunMethodTest();
      t1.run(); <strong>// calling run() method directly instead of start() method</strong>
      t2.run(); <strong>// calling run() method directly instead of start() method</strong>
   }
}
登录后复制

在上面的例子中,创建了两个线程,并直接在线程上调用了run()方法,而不是调用start()方法。

输出

In the run() method: main
i: 0
i: 1
i: 2
i: 3
i: 4
In the run() method: main
i: 0
i: 1
i: 2
i: 3
i: 4
登录后复制

以上是在Java中,什么时候调用Thread.run()而不是Thread.start()?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板