Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Vorhergehendes Paket   Seite Zurück   Seite Vor   Nächstes Paket   Paketübersicht   Index

Klasse java.lang.Thread1.0

java.lang.Object
   |
   +--java.lang.Thread

Deklaration

public class Thread
extends java.lang.Object
implements java.lang.Runnable

Beschreibung

Mit der Klasse Thread können Teile eines Programms parallel ablaufen. Hierzu muss zunächst in einer Unterklasse die Methode run() mit der gewünschten Funktionalität überschrieben werden. Alternativ gibt es eine Variante des Konstruktors, dem ein Objekt übergeben werden kann, dessen Klasse das Interface Runnable implementiert.


 
Datenelemente
public final static intMIN_PRIORITY
public final static intNORM_PRIORITY
public final static intMAX_PRIORITY
 
Konstruktoren
publicThread()
publicThread(Runnable target)
publicThread(String name)
publicThread(ThreadGroup group, String name)
publicThread(Runnable target, String name)
publicThread(ThreadGroup group, Runnable target)
publicThread(ThreadGroup group, Runnable target, String name)
publicThread(ThreadGroup group, Runnable target, String name, long stackSize)     [1.4]
 
Methoden
public static intactiveCount()
public final voidcheckAccess()
public native intcountStackFrames()
public static native ThreadcurrentThread()
public voiddestroy()
public static voiddumpStack()
public static intenumerate(Thread[] tarray)
public ClassLoadergetContextClassLoader()     [1.2]
public final StringgetName()
public final intgetPriority()
public final ThreadGroupgetThreadGroup()
public static native booleanholdsLock(Object obj)     [1.4]
public voidinterrupt()
public static booleaninterrupted()
public final native booleanisAlive()
public final booleanisDaemon()
public booleanisInterrupted()
public final voidjoin()
public final synchronized voidjoin(long millis)
public final synchronized voidjoin(long millis, int nanos)
public final voidresume()
      Verworfen in Version 1.2.
public voidrun()
public voidsetContextClassLoader(ClassLoader cl)     [1.2]
public final voidsetDaemon(boolean on)
public final voidsetName(String name)
public final voidsetPriority(int newPriority)
public static native voidsleep(long millis)
public static voidsleep(long millis, int nanos)
public synchronized native voidstart()
public final voidstop()
      Verworfen in Version 1.2.
public final synchronized voidstop(Throwable o)
      Verworfen in Version 1.2.
public final voidsuspend()
      Verworfen in Version 1.2.
public StringtoString()
public static native voidyield()


 

Datenelemente im Detail

public final static int MIN_PRIORITY = 1
Die niedrigste Priorität, die ein Thread haben kann.
public final static int NORM_PRIORITY = 5
Die zunächst für alle Threads voreingestellte Priorität.
public final static int MAX_PRIORITY = 10
Die höchste Priorität, die ein Thread haben kann.

 

Konstruktoren im Detail

public Thread()
Erzeugt einen neuen Thread.
public Thread(Runnable target)
Erzeugt einen neuen Thread für die Runnable-Implementierung target.
public Thread(String name)
Erzeugt einen neuen Thread mit dem Namen name.
public Thread(ThreadGroup group, String name)
Erzeugt einen neuen Thread in der Gruppe group und dem Namen name.
public Thread(Runnable target, String name)
Erzeugt einen neuen Thread für die Runnable-Implementierung target und dem Namen name.
public Thread(ThreadGroup group, Runnable target)
Erzeugt einen neuen Thread in der Gruppe group für die Runnable-Implementierung target.
public Thread(ThreadGroup group, Runnable target, String name)
Erzeugt einen neuen Thread in der Gruppe group für die Runnable-Implementierung target. Zusätzlich kann der Name des Threads angegeben werden.
public Thread(ThreadGroup group, Runnable target, String name, long stackSize)     [1.4]
Erzeugt einen neuen Thread in der Gruppe group für die Runnable-Implementierung target. Zusätzlich kann der Name des Threads angegeben werden. Mit dem Parameter stackSize kann der Virtual Machine ein Vorschlag über die Größe des Stacks für den neuen Thread gemacht werden. Dieser Parameter gestattet eine Plattform- und Virtual Machine-abhängige Feinabstimmung in Bezug auf den Stackbereich, der einzelnen Threads zur Verfügung steht. Beispielsweise könnte durch eine hinreichend niedrige Beschränkung dieses Werts die maximal mögliche Anzahl an parallelen Threads erhöht werden, bevor es zu Speicherproblemen kommt.

 

Methoden im Detail

public static int activeCount()
Liefert die Anzahl der aktiven Threads, die in der Gruppe des Threads enthalten sind. Der Rückgabewert kann von der tatsächlichen Anzahl abweichen, wenn Threads während der Zählung ihren Zustand ändern.
public final void checkAccess()
Falls ein SecurityManager installiert ist, prüft diese Methode, ob dieser Thread manipuliert werden darf.
public native int countStackFrames()
Liefert die Anzahl der Stack Frames des Threads zurück. Vor dem Aufruf dieser Methode muss die Ausführung des Threads durch einen Aufruf von suspend() unterbrochen werden.
public static native Thread currentThread()
Liefert einen Verweis auf den momentan aktiven Thread.
public void destroy()
Diese Methode ist nicht mehr implementiert.
public static void dumpStack()
Gibt die dynamische Aufrufhierarchie aus.
public static int enumerate(Thread[] tarray)
Trägt die momentan aktiven Threads in der Gruppe dieses Threads in tarray ein und liefert deren Anzahl zurück. Mit der Methode activeCount() kann zuvor festgestellt werden, wie groß das Array tarray zu dimensionieren ist.
public ClassLoader getContextClassLoader()     [1.2]
Liefert den von diesem Thread verwendeten ClassLoader zurück. Standardmäßig wird der ClassLoader des Threads übernommen, der diesen Thread erzeugt. Er kann mit setContextClassLoader() neu gesetzt werden.
public final String getName()
Liefert den Namen des Threads.
public final int getPriority()
Liefert die Priorität des Threads.
public final ThreadGroup getThreadGroup()
Liefert einen Verweis auf die Gruppe des Threads zurück.
public static native boolean holdsLock(Object obj)     [1.4]
Liefert true, falls der momentan aktive Thread die mit dem Objekt obj assoziierte Sperre besitzt, sonst false.
public void interrupt()
Unterbricht den Thread.
public static boolean interrupted()
Liefert true, wenn der momentan aktive Thread unterbrochen ist, sonst false.
public final native boolean isAlive()
Liefert true, wenn der Thread lauffähig ist, d. h, wenn seine start-Methode, aber noch nicht seine stop()-Methode aufgerufen wurde. Der Rückgabewert false signalisiert, dass der Thread nicht lauffähig ist. Das ist der Fall, wenn der Thread neu erzeugt wurde, ohne dass bisher seine start-Methode aufgerufen wurde, oder wenn die Ausführung seiner run()-Methode ordungsgemäß beendet oder seine stop-Methode aufgerufen wurde.
public final boolean isDaemon()
Liefert true, wenn der Thread als Daemon läuft, sonst false.
public boolean isInterrupted()
Liefert true, wenn dieser Thread unterbrochen ist, sonst false.
public final void join()
Wartet auf die Beendigung des Threads.
Exception: InterruptedException
public final synchronized void join(long millis)
Wartet millis Millisekunden auf die Beendigung des Threads. Wenn der Thread seine Ausführung innerhalb der angegebenen Zeit nicht beendet, wird die Methode ergebnislos beendet. Wenn millis auf null gesetzt wird, wartet diese Variante ohne Timeout auf die Beendigung.
Exception: InterruptedException
Exception: IllegalArgumentException
public final synchronized void join(long millis, int nanos)
Wie die vorhergehende Variante, nur mit genauerer Zeitangabe.
Exception: InterruptedException
Exception: IllegalArgumentException
public final void resume()
Macht den Thread nach einem Aufruf von suspend() wieder rechenwillig. In Version 1.2 wurde diese Methode verworfen, da sie Deadlocks verursachen kann.
public void run()
Diese Methode enthält den eigentlichen Anweisungsteil, der nach der Aktivierung ausgeführt wird. Hierzu muss sie überschrieben werden, wenn beim Aufruf des Konstruktors kein Runnable-Objekt übergeben wurde. Falls dem Konstruktor ein Runnable-Objekt übergeben wurde, wird dessen run()-Methode ausgeführt.
public void setContextClassLoader(ClassLoader cl)     [1.2]
Setzt den von diesem Thread verwendeten ClassLoader auf cl. Falls ein SecurityManager gesetzt ist, wird zuvor geprüft, ob der aufrufende Thread die Berechtigung hat, diesen Thread zu manipulieren
public final void setDaemon(boolean on)
Lässt den Thread als Daemon oder User-Thread ausführen, wenn on true bzw. false ist.
public final void setName(String name)
Setzt den Namen des Threads auf name.
public final void setPriority(int newPriority)
Setzt die Priorität des Threads auf newPriority. newPriority muss im Bereich von MIN_PRIORITY und MAX_PRIORITY liegen.
Exception: IllegalArgumentException
public static native void sleep(long millis)
Bewirkt, dass die Ausführung des Threads millis Millisekunden ausgesetzt wird.
Exception: InterruptedException
public static void sleep(long millis, int nanos)
Diese Variante erlaubt eine genauere Zeitangabe.
Exception: InterruptedException
Exception: IllegalArgumentException
public synchronized native void start()
Startet den Thread durch Aufruf der run-Methode.
public final void stop()
Hält den Thread an. Diese Methode wurde in Version 1.2 verworfen, da sie Inkonsistenzen verursachen kann, wenn sie bei einem Thread aufgerufen wird, der gerade eine Zugangsmethode eines Monitors ausführt.
public final synchronized void stop(Throwable o)
Hält den Thread an, in dem das Objekt o ausgelöst wird. Normalerweise werden Exemplare von ThreadDeath übergeben.
public final void suspend()
Hält den Thread an, bis er durch einen Aufruf von resume() wieder lauffähig gemacht wird. In Version 1.2 wurde diese Methode verworfen, da sie Deadlocks verursachen kann.
public String toString()
Liefert einen String, der den Namen, die Priorität und den Namen der Thread-Gruppe, zu der der Thread gehört, enthält.
public static native void yield()
Mit dem Aufruf dieser Methode unterbricht der Thread seine Ausführung, um anderen Threads mit der gleichen Prorität die Möglichkeit zur Ausführung zu geben. yield() bewirkt nichts, wenn momentan keine Threads verfügbar sind, die dieselbe Priorität haben und rechenwillig sind.


 Inhaltsverzeichnis   Vorhergehendes Paket   Seite Zurück   Seite Vor   Nächstes Paket   Paketübersicht   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.