Rumah > Java > javaTutorial > Bersenam Cuba Benang Memanjangkan Ini

Bersenam Cuba Benang Memanjangkan Ini

Linda Hamilton
Lepaskan: 2024-11-21 07:07:09
asal
757 orang telah melayarinya

Exercício Tente Isto Extendendo Thread

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.");
    }
}

Salin selepas log masuk

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.

Salin selepas log masuk

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!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan