Ein Prozess kann mehrere Threads enthalten. Threads sind Komponenten des Prozesses. Jeder Thread muss sich auf den Prozess verlassen, zu dem er gehört. Threads verfügen über private Stacks, Programmzähler und lokale Variablen, können jedoch keine Systemressourcen besitzen. Es teilt alle Ressourcen des Prozesses mit anderen Threads des übergeordneten Prozesses.
Threads können bestimmte Aufgaben ausführen und gemeinsam genutzte Variablen und einen Teil der Umgebung des übergeordneten Prozesses mit anderen Threads teilen und miteinander kooperieren komplette Aufgaben.
Threads laufen unabhängig voneinander und wissen nicht, ob sich noch andere Threads im Prozess befinden.
Die Ausführung von Threads erfolgt präventiv, das heißt, der aktuell ausgeführte Thread kann jederzeit angehalten werden, um einen anderen Thread auszuführen.
Ein Thread kann einen anderen Thread erstellen oder zerstören, und mehrere Threads in einem Prozess können gleichzeitig ausgeführt werden.
Java verwendet die Thread-Klasse, um Threads darzustellen. Die Rolle jedes Threads besteht darin, eine bestimmte Aufgabe auszuführen. Tatsächlich handelt es sich um die Ausführung eines Programmablaufs (ein Stück Code, der nacheinander ausgeführt wird)
# 🎜🎜#2 Erstellen Sie eine Instanz der Thread-Klasse, das heißt, erstellen Sie ein Thread-Objekt
3 Starten Sie den Thread Thread-Klasse, mehrere Threads können die Instanzvariablen der Thread-Klasse nicht gemeinsam nutzen, wie oben erwähnt Die Variable i
Option 2: Implementieren Sie die Runnable-Schnittstelle# 🎜🎜#1: Definieren Sie die Implementierungsklasse der Runnable-Schnittstelle und schreiben Sie ihre Run-Methode neu. Die Run-Methode ist auch der Ausführungskörper des Threads!
2: Erstellen Sie eine Instanz der Runnable-Implementierungsklasse und verwenden Sie diese Instanz als Ziel von Thread, um ein Thread-Objekt zu erstellen. Dieses Thread-Objekt ist das eigentliche Thread-Objekt!
3: Aufrufen der Startmethode, um den Thread zu startenVerwenden Sie Callable und Future, um Threads zu erstellen
Ab Java5 stellt Java die Callable-Schnittstelle bereit, und die Callable-Schnittstelle stellt eine call()-Methode bereit das als Thread-Ausführungskörper verwendet werden kann, sieht Runnable sehr ähnlich, aber die call()-Methode ist leistungsfähiger – die call()-Methode kann einen Rückgabewert haben und die call()-Methode kann eine Ausnahme auslösen
#🎜 🎜#
Java5 stellt die Future-Schnittstelle zur Darstellung des Rückgabewerts der call()-Methode der Callable-Schnittstelle bereit und stellt eine FutureTask-Implementierung bereit Klasse für die Future-Schnittstelle, die die Klasse Future-Schnittstelle implementiert, implementiert auch die Runnable-Schnittstelle – die als Ziel von Thread verwendet werden kann.2: Verwenden Sie die FutureTask-Klasse, um das Callable-Objekt zu umschließen. Die FutureTask umschließt den Rückgabewert der Call-Methode der Klasse Callable.
3: Verwenden Sie das FutureTask-Objekt als Ziel des Threads, einen neuen Thread zu erstellen und zu starten!4: Verwenden Sie die get-Methode von FutureTask, um den Rückgabewert nach der Ausführung zu erhalten
#🎜🎜 #Fazit: Der Vorteil der Verwendung von Runnable und Callable besteht darin, dass die Thread-Klasse nur die Runnable- oder Callable-Schnittstelle implementiert und auch andere Klassen erben kann. Bei dieser Methode können mehrere Threads ein Zielobjekt gemeinsam nutzen Sehr geeignet für Situationen, in denen mehrere identische Threads dieselbe Ressource verarbeiten und so CPU, Code und Daten trennen. Das Modell mit klaren formalen Parametern verkörpert die Idee der objektorientierten Programmierung. Der Nachteil besteht darin, dass der Programmieraufwand etwas höher ist.
Das obige ist der detaillierte Inhalt vonWas sind die Eigenschaften und die Verwendung von Threads in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!