Rumah >Java >javaTutorial >Di Java, bila hendak memanggil Thread.run() dan bukannya Thread.start()?

Di Java, bila hendak memanggil Thread.run() dan bukannya Thread.start()?

WBOY
WBOYke hadapan
2023-09-15 12:13:021230semak imbas

Di Java, bila hendak memanggil Thread.run() dan bukannya Thread.start()?

Apabila kita memanggil kaedah start() pada thread, ia menyebabkan thread mula melaksanakan dan kaedah run() thread dipanggil oleh Java Virtual Machine (JVM). Jika kita memanggil kaedah run() secara langsung, ia akan dianggap sebagai kaedah biasa overridden kelas benang (atau antara muka boleh jalan), dan ia akan dilaksanakan dalam konteks urutan semasa, bukan dalam benang baru dalam pelaksanaan.

Contoh

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>
   }
}

Dalam contoh di atas, dua utas dicipta dan kaedah run() dipanggil terus pada utas dan bukannya memanggil kaedah mula().

Output

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

Atas ialah kandungan terperinci Di Java, bila hendak memanggil Thread.run() dan bukannya Thread.start()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam