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
Lepaskan: 2023-09-15 12:13:02
ke hadapan
1249 orang telah melayarinya

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>
   }
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan