首頁  >  文章  >  Java  >  在Java中,什麼時候呼叫Thread.run()而不是Thread.start()?

在Java中,什麼時候呼叫Thread.run()而不是Thread.start()?

WBOY
WBOY轉載
2023-09-15 12:13:021210瀏覽

在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刪除