首頁 > Java > java教程 > 主體

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

WBOY
發布: 2023-09-15 12:13:02
轉載
1208 人瀏覽過

在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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板