Einführung in die nebenläufige Programmierung
Bisher haben wir nur rein sequentielle Programme gesehen: Das Programm startet mit der ersten Anweisung des Hauptprogramms und arbeitet nacheinander alle Anweisungen ab. Wenn die letzte Anweisung abgeschlossen wurde, wird das Programm automatisch beendet.
In einigen Fällen kann es aber sinnvoll sein, verschiedene Tätigkeiten nebeneinander, d.h. gleichzeitig, zu erledigen. Man spricht dann von Nebenläufigkeit.
Hierbei ist anzumerken, dass traditionelle Computersysteme keine echte Nebenläufigkeit ermöglichten: es gab nur einen Prozessor, und dieser kann immer nur eine Aufgabe nach der anderen ausführen. In diesem Fall wird eine Nebenläufigkeit simuliert, indem zwischen den verschiedenen Ausführungssträngen gewechselt wird. So könnten z.B. abwechselnd jeweils eine Anweisung aus jedem Ausführungsstrang ausgeführt werden und dann auf den nächsten Strang gewechselt werden. Wegen der hohen Geschwindigkeit, in der die Anweisungen auf einem modernen Prozessor ausgeführt werden, entsteht der Anschein, dass die Aufgaben gleichzeitig ausgeführt werden.
Bei modernen Mehrkern-Prozessoren ist dagegen auch eine echte Gleichzeitigkeit möglich. Für uns soll das aber nicht weiter von Interesse sein, ob zwei Aufgaben nun gleichzeitig oder lediglich quasi-gleichzeitig ausgeführt werden.
In der Informatik nennt man einen nebenläufigen Ausführungsstrang innerhalb eines Programms einen Thread. Auf den heutigen Computersystemen können auch mehrere Programme gleichzeitig laufen, dann spricht man von Prozessen bzw. Tasks. Von diesen Begriffen rühren die Bezeichnungen Multi-Tasking und Multi-Threading. In diesem Kapitel reden wir über Nebenläufigkeit innerhalb eines einzelnen Programmes, also über Multi-Threading.
Nebenläufigkeit macht z.B. Sinn im Zusammenhang mit grafischen Oberflächen. Wenn nach einem Klick auf eine Schaltfläche eine aufwändige Operation gestartet wird, sollte die Oberfläche nicht „einfrieren“, sondern natürlich auch während der Berechnung weiter bedienbar sein. Daher würde man in einem solchen Fall die Operation in einen separaten Thread auslagern.
Das Tutorial steht dann auch zum Download im PDF-Format zur Verfügung.
Eine ausführliche Liste unserer Buchempfehlungen für Java finden Sie hier.
Java-Tutorial Kapitel:
1. Grundlagen: Compiler und Entwicklungsumgebung2. Kernelemente: Variablen und Ausdrücke
3. Ablaufsteuerung in Java
4. Überblick Objektorientierung
5. Primitive Datentypen
6. Ausdrücke und Operatoren
7. Arrays in Java
8. Zeichenketten
9. Klassen und Objekte
10. Referenzen und Parameter
11. Vererbung in Java
12. Exceptions
13. Generics
14. Collections
15. Dateiverarbeitung in Java
16. Nebenläufigkeit
17. Netzwerkprogrammierung
18. Grafische Oberflächen (GUIs)
19. Java-Webtipps
20. Code-Download und Übungen
Für den Zugriff auf die Kapitel 5 - 20 ist eine Registrierung notwendig.
Einloggen
Wenn Sie noch kein Benutzerkonto bei programmierenlernen24.de haben, müssen Sie sich zunächst registrieren, um vollen Zugriff auf unser Java-Tutorial zu bekommen.
Passwort vergessen? Lassen Sie sich hier ein neues zusenden.
Unsere Buchempfehlungen
Oder sehen Sie sich die vollständige Liste der Empfehlungen für Java an.Wir haben auch eine Empfehlung für einen Java-Fernkurs parat.