Threads
In einem Java-Programm können mehrere Vorgänge gleichzeitig ausgeführt werden. Diese Vorgänge laufen dann sozusagen nebeneinander her. Realisiert wird diese Fähigkeit zur Nebenläufigkeit durch Threads, die durch die Klasse Thread und das Interface Runnable implementiert werden. Der zu einem Thread gehörende und auszuführende Code muss durch die parameterfreie Methode run zur Verfügung gestellt werden (→ Javaprojekt MysteriousShapes):
class RunnableExample implements Runnable {
private Thread thread;
public RunnableExample() {
thread = new Thread(this);
}
@Override
public void run() {
while (notReady) {
...
...
}
}
}
Mit Hilfe von Threads ist es beispielsweise möglich, Animationen zu programmieren, in denen (miteinander interagierende) graphische Objekte gleichzeitig oder quasi-gleichzeitig jeweils verschiedene Bewegungen ausführen. Threads können auch dazu verwendet werden, Dialoganwendungen schneller zu machen, indem rechenintensive Methoden im Hintergrund und parallel zueinander aufgerufen werden.
Mit dem Nicht-Zugriffsmodifikator synchronized deklarierte Methoden können zur gleichen Zeit nur von einem einzigen Thread aufgerufen werden.
Jeder Thread kann nur ein einziges Mal gestartet werden.