Vergleich von drei Möglichkeiten zum Erstellen von Threads in Java?

In Java gibt es drei Hauptmethoden zum Erstellen von Threads: durch Erben der Thread-Klasse, Implementieren der Runnable-Schnittstelle und Verwenden von Lambda-Ausdrücken, die nach Java 8 eingeführt wurden. Im Folgenden beschreibt der Autor die Merkmale und Verwendungsmethoden dieser drei Methoden ausführlich:

  1. Erben Sie die Thread-Klasse

  Auf diese Weise wird ein Thread definiert, indem eine Unterklasse erstellt wird, die von der Thread-Klasse erbt. Die Unterklasse muss die run()-Methode der Thread-Klasse implementieren, und die run()-Methode enthält die Ausführungslogik des Threads. Threads werden dann erstellt, indem eine Instanz der Unterklasse erstellt wird.

class MyThread extends Thread {
    public void run() {
        // 线程的执行逻辑
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start(); // 启动线程
    }
}

  Vorteil:

  · Einfach, geeignet für einfache Thread-Aufgaben.

  Mangel:

  ·Da Java keine Mehrfachvererbung unterstützt, ist die Methode zum Erben der Thread-Klasse nicht flexibel genug. Wenn Sie andere Klassen geerbt haben, können Sie die Thread-Klasse nicht erben.

  Thread-Code kann nicht gemeinsam genutzt werden, da Thread-Code in Unterklassen gekapselt ist.

  2. Implementieren Sie die Runnable-Schnittstelle

  Auf diese Weise wird ein Thread erstellt, indem eine Klasse erstellt wird, die die Runnable-Schnittstelle implementiert, und dann eine Instanz dieser Klasse an die Thread-Klasse übergeben wird. Klassen, die die Runnable-Schnittstelle implementieren, müssen die run()-Methode implementieren, die die Ausführungslogik des Threads enthält.

class MyRunnable implements Runnable {
    public void run() {
        // 线程的执行逻辑
    }
}

public class Main {
    public static void main(String[] args) {
        MyRunnable runnable = new MyRunnable();
        Thread thread = new Thread(runnable);
        thread.start(); // 启动线程
    }
}

  Vorteil:

  · Flexibler, da Sie andere Schnittstellen implementieren oder andere Klassen erben können.

  ·Thread-Code kann gemeinsam genutzt werden und mehrere Threads können dieselbe Runnable-Instanz gemeinsam nutzen.

  Mangel:

  Etwas komplizierter als die Art und Weise, die Thread-Klasse zu erben, müssen Sie ein Runnable-Objekt erstellen und es dann an Thread übergeben.

  3. Lambda-Ausdrücke verwenden (Java 8 und höher)

  Java 8 führt Lambda-Ausdrücke ein, was die Erstellung von Threads prägnanter macht. Sie können Lambda-Ausdrücke verwenden, um die Ausführungslogik von Threads zu definieren.

public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            // 线程的执行逻辑
        });
        thread.start(); // 启动线程
    }
}

  Vorteil:

  · Äußerst prägnant, reduziert redundanten Code.

  · Externe Variablen können einfacher erfasst werden.

  Mangel:

  · Gilt nur für Java 8 und spätere Versionen.

  Zusammenfassen:

  Die Auswahl, wie Threads erstellt werden, hängt von den Anforderungen und der Komplexität Ihres Projekts ab. Im Allgemeinen ist die Implementierung der Runnable-Schnittstelle flexibler und wird empfohlen, da sie nicht durch die Java-Einzelvererbung eingeschränkt wird und die Codefreigabe unterstützt. Die Lambda-Ausdrucksmethode ist die prägnanteste Methode in Java 8 und späteren Versionen, funktioniert jedoch nicht für ältere Java-Versionen. Die Methode zum Erben der Thread-Klasse eignet sich für einfache Thread-Aufgaben, kann jedoch in komplexen Fällen die Flexibilität des Codes einschränken.

Guess you like

Origin blog.csdn.net/Blue92120/article/details/132421805