Es gibt nur zwei Möglichkeiten, einen Thread zu erstellen, die Sie bereits erwähnt haben, aber es gibt eine dritte Möglichkeit, den Thread zu starten.
In Java 1.5 gibt es eine weitere Möglichkeit, einen Thread zu starten. Das erfolgt durch den "ExecutorService". Alle diese Klassen stammen aus dem Paket "java.util.concurrent". Es gibt verschiedene Möglichkeiten, einen "ExecutorService" mithilfe der Factory-Klasse "Executors" zu erstellen. Folgendes ist eine Möglichkeit, einen "ExecutorService" zu erstellen.
ExecutorService es = Executors.newSingleThreadExecutor();
RunnableImpl r = new RunnableImpl();
Future fu = es.submit(r);
Mit den Methoden des "ExecutorService" können entweder Runnable-Objekte oder Callable-Objekte zur Ausführung an den Service übergeben werden.
Jedoch kann dies nicht als der neue Weg zur Erstellung eines Threads bezeichnet werden. Das liegt daran, dass der ExecutorService intern die Klasse "ThreadFactory" verwendet, um einen neuen Thread zu erstellen, der intern entweder die erste oder die zweite Methode verwendet. Daher müssen wir sagen, dass es nur zwei Möglichkeiten gibt, Threads zu erstellen, aber es gibt einen neuen Weg in Java 1.5, um einen Thread zu starten, jedoch keinen neuen Thread zu erstellen.
3 Stimmen
Es ist keine gute Herangehensweise, die Thread-Klasse zu erweitern! Verwenden Sie immer die letztere.
0 Stimmen
Das ist im Grunde genommen alles. Es gibt andere Möglichkeiten, Runnables auszuführen, wie ThreadPoolExecutor usw., aber sie erfordern alle die Implementierung des
Runnable
-Interfaces.