» Referenzen / Klassen / Thread

Die Klasse realisiert die Multithreading - Technologie von Java. Sie beinhaltet diverse Methoden, um Informationen über Threads zu erhalten, diese zu starten und zu beenden.

» ab JDK Version 1.0



public class Thread
extends Object
implements Runnable
    

» Object


» Runnable


» Elemente

In der folgenden Liste sind alle von uns bereits referenzierten Elemente der Klasse aufgeführt.

» Methoden » Konstruktoren

» activeCount
» checkAccess
» currentThread
» destroy
» dumpStack
» enumerate
» getContextClassLoader
» getName
» getPriority
» getThreadGroup
» interrupt
» interrupted
» isAlive
» isDaemon
» isInterrupted
» join [1][2][3]
» run
» setContextClassLoader
» setDaemon
» setName
» setPriority
» sleep [1][2]
» start
» toString
» yield


» Thread (1)
» Thread (2)
» Thread (3)
» Thread (4)
» Thread (5)
» Thread (6)
» Thread (7)

» Datenelemente » Destruktoren

» MAX_PRIORITY
» MIN_PRIORITY
» NORM_PRIORITY


keine


» Datenelemente / MAX_PRIORITY

Repräsentiert die höchste Prioritätsstufe, die ein Thread haben kann.

» Prototyp

public static final int MAX_PRIORITY
    
» ab JDK Version 1.0

» Datenelemente / MIN_PRIORITY

Repräsentiert die niedrigste Prioritätsstufe, die ein Thread haben kann.

» Prototyp

public static final int MIN_PRIORITY
    
» ab JDK Version 1.0

» Datenelemente / NORM_PRIORITY

Repräsentiert die normale Prioritätsstufe.

» Prototyp

public static final int NORM_PRIORITY
    
» ab JDK Version 1.0

» Konstruktoren / Thread (1)

Der Standardkonstruktor instanziiert einen neuen Thread mit einem Standardnamen. Der Konstruktor ist zu der folgenden expliziten Angabe äquivalent.
Thread(NULL,NULL,Name)
    
» Prototyp

public Thread()
    
» Parameter

keine

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Konstruktoren / Thread (2)

Der Konstruktor instanziiert einen neuen Thread mit einem Standardnamen und einem explizit angegebenen Zielobjekt, dessen Startmethode aufgerufen wird. Der Konstruktor ist zu der folgenden expliziten Angabe äquivalent.
Thread(NULL,Objekt,Name)
    
» Prototyp

public Thread(Runnable target)
    
» Parameter

target Das Zielobjekt dessen Run - Methode aufgerufen wird.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Konstruktoren / Thread (3)

Der Konstruktor instanziiert einen neuen Thread mit einem explizit angegebenen Namen und einem Zielobjekt, dessen Startmethode aufgerufen wird. Der Konstruktor ist zu der folgenden expliziten Angabe äquivalent.
Thread(NULL,Objekt,Name)
    
» Prototyp

public Thread(Runnable target,String name)
    
» Parameter

target Das Zielobjekt dessen Run - Methode aufgerufen wird.
name Der Name des neuen Threads.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Konstruktoren / Thread (4)

Der Konstruktor instanziiert einen neuen Thread mit einem explizit angegebenen Namen. Der Konstruktor ist zu der folgenden expliziten Angabe äquivalent.
Thread(NULL,NULL,Name)
    
» Prototyp

public Thread(String name)
    
» Parameter

name Der Name des neuen Threads.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Konstruktoren / Thread (5)

Der Konstruktor instanziiert einen neuen Thread mit einem explizit angegebenen Zielobjekt, dessen Startmethode aufgerufen wird. Der Name des Thread wird selbst generiert und der Thread der angegebenen Gruppe zugeordnet. Der Konstruktor ist zu der folgenden expliziten Angabe äquivalent.
Thread(Gruppe,Objekt,Name)
    
» Prototyp

public Thread(ThreadGroup group,Runnable target)
    
» Parameter

group Der Name des neuen Threads.
target Das Zielobjekt dessen Run - Methode aufgerufen wird.

» Ausnahmen & Fehler

SecurityException
Der Thread kann nicht in der angegebenen Gruppe erzeugt werden.

» ab JDK Version 1.0

» Konstruktoren / Thread (6)

Der Konstruktor instanziiert einen neuen Thread mit einem explizit angegebenen Namen. Der Thread der angegebenen Gruppe zugeordnet. Der Konstruktor ist zu der folgenden expliziten Angabe äquivalent.
Thread(Gruppe,NULL,Name)
    
» Prototyp

public Thread(ThreadGroup group,String name)
    
» Parameter

group Der Name des neuen Threads.
name Der Name des neuen Threads.

» Ausnahmen & Fehler

SecurityException
Der Thread kann nicht in der angegebenen Gruppe erzeugt werden.

» ab JDK Version 1.0

» Konstruktoren / Thread (7)

Alle bereits referenzierten Konstruktoren gehen letztlich auf diese Variante zurück, indem sie ihn aufrufen und nicht verwendete Parameter mit Standardwerten belegt. Der Konstruktor instanziiert ein neues Objekt, das einen Namen und eine Gruppe zugewiesen bekommt. Auch das Zielobjekt kann bestimmt werden.

Wird keine Gruppe angegeben, so wird die gleiche Gruppe verwendet, wie die des aufrufenden Threads. Gibt es einen globalen Sicherheitsmanager, so wird der Thread als Argument an die checkAccess - Methode übergeben. Ist ein Zielobjekt gesetzt worden, so überschreibt dieses die aktuelle Run - Methode. Diese wird dann beim Start des Threads aufgerufen. Ansonsten wird die eigene Run - Methode verwendet. Die zugewiesene Prioritätsstufe ist die gleiche wie die des ausführenden Threads. Der neue Thread gilt nur dann als Dämon - Thread, wenn auch der ausführende Thread ein Dämon ist.

» Prototyp

public Thread(ThreadGroup group,Runnable target,String name)
    
» Parameter

group Der Name des neuen Threads.
target Das Zielobjekt dessen Run - Methode aufgerufen wird.
name Der Name des neuen Threads.

» Ausnahmen & Fehler

SecurityException
Der Thread kann nicht in der angegebenen Gruppe erzeugt werden.

» ab JDK Version 1.0

» Methoden / activeCount

Die Methode liefert die Anzahl der aktuellen Threads in der aktuellen Thread - Gruppe.

» Prototyp

public static int activeCount()
    
» Parameter

keine

» Rückgabe

Wert Anzahl der Threads in der Gruppe.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / checkAccess

Die Methode terminiert, wenn der aktuelle Thread diesen Thread ändern kann. Sofern ein Sicherheitsmanager installiert ist, wird dessen checkAccess - Methode der Thread übergeben.

» Prototyp

public final void checkAccess()
    
» Parameter

keine

» Rückgabe

keine

» Ausnahmen & Fehler

SecurityException
Der aktuelle Thread darf auf diesen Thread nicht zugreifen.

» ab JDK Version 1.0

» Methoden / currentThread

Die Methode liefert eine Referenz auf den aktuell laufenden Thread.

» Prototyp

public static Thread currentThread()
    
» Parameter

keine

» Rückgabe

Referenz Eine Referenz auf den aktuellen Thread.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / destroy

Die Methode zerstört den Thread. Dabei werden keine Bereinigungsarbeiten durchgeführt.

» Prototyp

public void destroy()
    
» Parameter

keine

» Rückgabe

keine

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / dumpStack

Die Methode gibt den aktuellen Stack des Threads aus.

» Prototyp

public static void dumpStack()
    
» Parameter

keine

» Rückgabe

keine

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / enumerate

Die Methode kopiert alle Threads der aktuellen Gruppe und deren Subgruppen in das Array. Sofern ein Sicherheitsmanager installiert ist, wird zunächst dessen checkAccess - Methode mit den Threads in der Gruppe aufgerufen.

» Prototyp

public static int enumerate(Thread[] array)
    
» Parameter

array In das zu kopierende Array.

» Rückgabe

Wert Anzahl der kopierten Threads.

» Ausnahmen & Fehler

SecurityException
Der Sicherheitsmanager unterbindet die Operation.

» ab JDK Version 1.0

» Methoden / getContextClassLoader

Die Methode liefert das Klassenlademodul für diesen Thread. Es wird vom Aufrufer dieses Threads bereitgestellt, um interne Allokationen und Ladevorgänge zu realisieren. Ist dieser nicht explizit gesetzt, so wird das Modul vom Eltern - Thread verwendet.

Sofern ein Sicherheitsmanager installiert ist, das Lademodul des Aufrufers nicht null ist und auch nicht das selbe Modul verwendet wird wie für die Ladevorgänge des aufrufenden Prozesses, wird die checkPermission - Methode des Sicherheitsmanagers aufgerufen, um sicherzustellen, dass das Lademodul verwendet werden kann.

» Prototyp

public ClassLoader getContextClassLoader()
    
» Parameter

keine

» Rückgabe

Referenz Eine Referenz auf das zuständige Lademodul.

» Ausnahmen & Fehler

SecurityException
Der Sicherheitsmanager unterbindet die Referenzierung des Lademoduls.

» ab JDK Version 1.2

» Methoden / getName

Die Methode liefert den Namen des Threads.

» Prototyp

public final String getName()
    
» Parameter

keine

» Rückgabe

String Der Name des Threads.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / getPriority

Die Methode liefert die Prioritätsstufe des Threads.

» Prototyp

public final int getPriority()
    
» Parameter

keine

» Rückgabe

Wert Die Prioritätsstufe des Threads.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / getThreadGroup

Die Methode liefert die Thread - Gruppe, zu der der Thread gehört. Ist der Thread beendet oder gestoppt worden, so wird null geliefert.

» Prototyp

public final ThreadGroup getThreadGroup()
    
» Parameter

keine

» Rückgabe

Referenz Eine Referenz auf die Thread - Gruppe.
null Der Thread wurde beendet oder gestoppt.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / interrupt

Die Methode unterbricht den Thread. Zuvor wird die checkAccess - Methode für diesen Thread ohne Parameter aufgerufen.

» Prototyp

public void interrupt()
    
» Parameter

keine

» Rückgabe

keine

» Ausnahmen & Fehler

SecurityException
Der Thread darf nicht modifiziert werden.

» ab JDK Version 1.0

» Methoden / interrupted

Die Methode prüft, ob der Thread unterbrochen wurde. Dabei wird das interne Interrupt - Flag auf False gesetzt, so dass ein zweiter Aufruf dieser Methode False liefert.

» Prototyp

public static boolean interrupted()
    
» Parameter

keine

» Rückgabe

True Der Thread wurde unterbrochen.
False Der Thread wurde nicht unterbrochen.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / isAlive

Die Methode prüft, ob der Thread noch läuft.

» Prototyp

public final boolean isAlive()
    
» Parameter

keine

» Rückgabe

True Der Thread läuft.
False Der Thread läuft nicht.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / isDaemon

Die Methode prüft, ob der Thread ein Dämon ist.

» Prototyp

public final boolean isDaemon()
    
» Parameter

keine

» Rückgabe

True Der Thread ist ein Dämon.
False Der Thread ist kein Dämon.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / isInterrupted

Die Methode prüft, ob der Thread unterbrochen wurde. Dabei wird das interne Interrupt - Flag nicht geändert.

» Prototyp

public boolean isInterrupted()
    
» Parameter

keine

» Rückgabe

True Der Thread wurde unterbrochen.
False Der Thread wurde nicht unterbrochen.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / join [1][2][3]

Die Methoden warten auf das Ende eines Threads, für den sie aufgerufen wird. Es kann auch eine maximale Zeitspanne definiert werden, die gewartet wird, bis mit weiteren Anweisungen fortgefahren wird.

» Prototyp

public final void join(                   )
throws InterruptedException
public final void join(long milli         )
throws InterruptedException
public final void join(long milli,int nano) 
throws InterruptedException
    
» Parameter

milli Die zu wartenden Millisekunden.
nano Die zu wartenden Nanosekunden.

» Rückgabe

keine

» Ausnahmen & Fehler

InterruptedException
Der Thread wurde unterbrochen. Das Interrupt - Flag wird dabei auf False gesetzt.
IllegalArgumentException
Die Angabe für die Millisekunden ist negativ oder die Angabe für die Nanosekunden erreicht den Wert von einer Million.

» ab JDK Version alle 1.0

» Methoden / run (Implementierung)

Die Methoden startet den Thread. Wenn der Thread mit einem separaten Run - Objekt initialisiert wurde, wird die Run - Methode des übergebenen Objekts verwendet, ansonsten werden keine Aktionen ausgeführt und die Run - Methode terminiert wieder.

» Prototyp

public void run()
    
» Parameter

keine

» Rückgabe

keine

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / setContextClassLoader

Die Methode setzt ein neues Klassenlademodul für diesen Thread, sofern dieser vom Aufrufer bereitgestellt werden darf.

Wenn ein Sicherheitsmanager installiert ist, wird zunächst dessen checkPermission - Methode aufgerufen, um festzustellen, ob das Setzen eines neuen Lademoduls zulässig ist.

» Prototyp

public void setContextClassLoader(ClassLoader class)
    
» Parameter

class Das neue Lademodul.

» Rückgabe

keine

» Ausnahmen & Fehler

SecurityException
Der Sicherheitsmanager unterbindet die Referenzierung des Lademoduls.

» ab JDK Version 1.2

» Methoden / setDaemon

Die Methode spezifiziert diesen Thread als Dämon. Die Methode muss noch vor dem Start des Threads aufgerufen werden. Handelt es sich bei allen laufenden Threads um Dämonen, so terminiert die JVM.

Zuvor wird die checkAccess - Methode des aktuellen Threads aufgerufen, um einen Zugriff sicherzustellen.

» Prototyp

public final void setDaemon(boolean mode)
    
» Parameter

mode Ist der Parameter True, so wird der Thread als Dämon markiert.

» Rückgabe

keine

» Ausnahmen & Fehler

SecurityException
Der Sicherheitsmanager unterbindet den Zugriff auf den Thread.
IllegalThreadStateException
Der Thread läuft bereits.

» ab JDK Version 1.0

» Methoden / setName

Die Methode weist dem Thread einen Namen zu. Zuvor wird die checkAccess - Methode des aktuellen Threads aufgerufen, um einen Zugriff sicherzustellen.

» Prototyp

public final void setName(String name)
    
» Parameter

name Der Name des Threads.

» Rückgabe

keine

» Ausnahmen & Fehler

SecurityException
Der Sicherheitsmanager unterbindet den Zugriff auf den Thread.

» ab JDK Version 1.0

» Methoden / setPriority

Die Methode weist dem Thread eine Prioritätsstufe zu. Zuvor wird die checkAccess - Methode des aktuellen Threads aufgerufen, um einen Zugriff sicherzustellen.

» Prototyp

public final void setPriority(int priority)
    
» Parameter

priority Die neue Prioritätsstufe. Hier stehen unter anderem die folgenden drei Werte bereit. Es können aber auch Werte zwischen den Konstanten gewählt werden.

Thread.MAX_PRIORITY Höchste Prioritätsstufe.
Thread.MIN_PRIORITY Niedrigste Prioritätsstufe.
Thread.NORM_PRIORITY Normale Prioritätsstufe.

» Rückgabe

keine

» Ausnahmen & Fehler

SecurityException
Der Sicherheitsmanager unterbindet den Zugriff auf den Thread.
IllegalThreadStateException
Die angegebene Priorität liegt außerhalb der Konstanten für den minimalen und maximalen Prioritätswert.

» ab JDK Version 1.0

» Methoden / sleep [1][2]

Die Methode friert den Thread für eine gewisse Zeitspanne ein.

» Prototyp

public static void sleep(long milli         )
throws InterruptedException
public static void sleep(long milli,int nano)
throws InterruptedException
    
» Parameter

milli Angabe der Millisekunden.
nano Angabe der Nanosekunden.

» Rückgabe

keine

» Ausnahmen & Fehler

InterruptedException
Der Thread wurde unterbrochen. Das Interrupt - Flag wird dabei auf False gesetzt.
IllegalArgumentException
Die Angabe für die Millisekunden ist negativ oder die Angabe für die Nanosekunden erreicht den Wert von einer Million.

» ab JDK Version 1.0

» Methoden / start

Die Methode startet den Thread. Die Methode ruft dabei die Run - Methode auf.

» Prototyp

public void start()
    
» Parameter

keine

» Rückgabe

keine

» Ausnahmen & Fehler

IllegalThreadStateException
Der Thread läuft bereits.

» ab JDK Version 1.0

» Methoden / toString (Redefinition)

Die Methode liefert eine Stringrepräsentation. Diese enthält den Namen, Prioritätsstufe und Gruppe.

» Prototyp

public String toString()
    
» Parameter

keine

» Rückgabe

String Stringrepräsentation des Threads.

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0

» Methoden / yield

Die Methode hält den aktuell laufenden Thread an und erlaubt anderen Threads deren Ausführung.

» Prototyp

public static void yield()
    
» Parameter

keine

» Rückgabe

keine

» Ausnahmen & Fehler

keine

» ab JDK Version 1.0