In dieser Übung erfahren Sie, wie Sie Threads in Java erstellen, indem Sie die Thread-Klasse direkt erweitern, anstatt die Runnable-Schnittstelle zu implementieren. Auf diese Weise erbt Ihre Klasse die Thread-Methoden, wodurch es einfacher wird, den Thread direkt zu bearbeiten, ohne dass ein separater Thread instanziiert werden muss.
Übungsschritte
Erweitern Sie die Thread-Klasse:
Ihre Klasse muss von Thread erben und die run()-Methode überschreiben.
Klassenkonstruktor:
Verwenden Sie den super(name)-Konstruktor, um dem Thread einen Namen zu geben und die Ausführung durch direkten Aufruf von start() zu starten.
Überschreiben Sie die run()-Methode:
Diese Methode definiert das Verhalten des Threads. Hier gibt der Thread seinen Namen aus und führt eine Schleife aus.
Vollständiges Funktionsbeispiel:
Unten ist der Code:
// 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."); } }
So funktioniert der Kodex
Sekundäre Thread-Erstellung:
Der Thread „Child #1“ wird erstellt und startet sofort mit start().
Sekundäre Thread-Ausführung:
Der Thread führt eine Schleife aus, druckt Nachrichten und pausiert 400 ms zwischen den Iterationen.
Haupt-Thread-Ausführung:
In der Zwischenzeit druckt der Hauptthread Punkte (".") in 100-ms-Intervallen.
Programmausgabe (Beispiel)
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.
Beobachtungen
Die Haupt- und Nebenthreads laufen gleichzeitig.
Die run()-Methode enthält die Logik des sekundären Threads, während der Hauptthread seine unabhängige Ausführung fortsetzt.
Das obige ist der detaillierte Inhalt vonÜbung Probieren Sie diesen Erweiterungsthread aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!