Dalam latihan ini, anda belajar cara mencipta benang dalam Java dengan melanjutkan kelas Thread secara langsung, bukannya melaksanakan antara muka Runnable. Dengan melakukan ini, kelas anda mewarisi kaedah Thread, yang memudahkan untuk memanipulasi utas secara langsung, tanpa perlu membuat instantiate thread yang berasingan.
Langkah Senaman
Melanjutkan kelas Thread:
Kelas anda mesti mewarisi daripada Thread dan mengatasi kaedah run().
Pembina kelas:
Gunakan pembina super(nama) untuk memberikan nama pada urutan dan mulakan pelaksanaan dengan memanggil start() secara terus.
Timpa kaedah run():
Kaedah ini mentakrifkan tingkah laku benang. Di sini, benang mencetak namanya dan menjalankan gelung.
Contoh Fungsian Lengkap:
Di bawah ialah kod:
// Define a classe que estende Thread class MyThread extends Thread { // Constrói uma nova thread MyThread(String name) { super(name); // Nomeia a thread start(); // Inicia a thread } // Começa a execução da nova thread public void run() { System.out.println(getName() + " starting."); try { for (int count = 0; count < 10; count++) { Thread.sleep(400); // Pausa por 400ms System.out.println("In " + getName() + ", count is " + count); } } catch (InterruptedException exc) { System.out.println(getName() + " interrupted."); } System.out.println(getName() + " terminating."); } } // Classe principal para demonstrar a execução das threads class ExtendThread { public static void main(String[] args) { System.out.println("Main thread starting."); // Cria uma nova thread MyThread mt = new MyThread("Child #1"); // Executa a thread principal for (int i = 0; i < 50; i++) { System.out.print("."); try { Thread.sleep(100); // Pausa por 100ms } catch (InterruptedException exc) { System.out.println("Main thread interrupted."); } } System.out.println("Main thread ending."); } }
Cara Kod Berfungsi
Penciptaan Benang Kedua:
Urutan "Child #1" dibuat dan bermula serta-merta dengan start().
Pelaksanaan Benang Kedua:
Urutan melaksanakan gelung, mencetak mesej dan menjeda selama 400ms antara lelaran.
Pelaksanaan Benang Utama:
Sementara itu, benang utama mencetak titik (".") pada selang 100ms.
Output Program (Contoh)
Main thread starting. Child #1 starting. .In Child #1, count is 0 ..In Child #1, count is 1 ...In Child #1, count is 2 ... (continua) Main thread ending. Child #1 terminating.
Pemerhatian
Benang utama dan sekunder berjalan serentak.
Kaedah run() mengandungi logik utas sekunder, manakala utas utama meneruskan pelaksanaan bebasnya.
Atas ialah kandungan terperinci Bersenam Cuba Benang Memanjangkan Ini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!