Video: Java für Fortgeschrittene - Multithreading 1 - Erstellen von Threads [GERMAN/DEUTSCH] 2024
Für die Threads, die bestimmte Countdown-Ereignisse auslösen, z. B. Überfluten des Launchpads, Starten der Ereignisse und Abheben, können Sie eine andere Java-Klasse namens LaunchEvent erstellen. Diese Klasse verwendet eine andere Technik zum Erstellen und Starten von Threads - eine, die ein paar zusätzliche Codezeilen erfordert, aber flexibler ist.
Das Problem beim Erstellen einer Klasse, die die Thread-Klasse erweitert, besteht darin, dass eine Klasse eine Oberklasse haben kann. Was wäre, wenn Sie Ihr Thread-Objekt lieber eine andere Klasse erweitern würden? In diesem Fall können Sie eine Klasse erstellen, die die Runnable-Schnittstelle implementiert, anstatt die Thread-Klasse zu erweitern.
Die Schnittstelle Runnable markiert ein Objekt, das als Thread ausgeführt werden kann. Es hat nur eine Methode, run, die den Code enthält, der im Thread ausgeführt wird. (Die Thread-Klasse implementiert selbst Runnable, weshalb die Thread-Klasse eine run-Methode hat.)
Um die Runnable-Schnittstelle zum Erstellen und Starten eines Threads zu verwenden, müssen Sie Folgendes tun:
-
Eine Klasse erstellen, die implementiert Lauffähig.
-
Stellen Sie eine Run-Methode in der Runnable-Klasse bereit.
-
Erstellt eine Instanz der Thread-Klasse und übergibt das Runnable-Objekt als Parameter an den Konstruktor.
Ein Thread-Objekt wird erstellt, das Ihre Runnable-Klasse ausführen kann.
-
Rufen Sie die Startmethode des Thread-Objekts auf.
Die Run-Methode Ihres Runnable-Objekts wird aufgerufen und in einem separaten Thread ausgeführt.
Die ersten beiden Schritte sind einfach. Der Trick ist in den dritten und vierten Schritten, weil Sie sie auf verschiedene Arten vervollständigen können. Hier ist eine Möglichkeit, angenommen, dass Ihre Runnable-Klasse RunnableClass heißt:
RunnableClass rc = neue RunnableClass (); Thread t = neuer Thread (rc); t. Anfang();
Java-Programmierer mögen es, so präzise wie möglich zu sein, daher sieht man diesen Code oft komprimiert zu etwas mehr wie
Thread t = new Thread (new RunnableClass ()); t. Anfang();
oder auch nur das:
neuer Thread (neue RunnableClass ()). Anfang();
Diese einzeilige Version funktioniert - vorausgesetzt, dass Sie später im Programm nicht auf das Thread-Objekt zugreifen müssen.