Die aktuelle Java-Version besitzt zahlreiche Konzepte zum Erstellen nebenläufiger Programme, die peu à peu in die Sprache eingeführt wurden. Anhand dieser Erweiterung lässt sich sehr gut nachverfolgen, wie sich die Sprache von Low-Level-Konzepten durch die Einführung von Abstraktionen zu High-Level-Beschreibungen entwickelt hat. Java durchlief in dem Concurrency-Bereich eine Entwicklung, wie sie auch in anderen Programmiersprachen stattgefunden hat.
In dem Vortrag werden die verschiedenen Konzepte vorgestellt und bewertet. Schwerpunkt bilden die eingeführten Parallelisierungsframeworks. Anhand von Anwendungsbeispielen wird der konkrete Einsatz einiger Konzepte verdeutlicht.
Vorkenntnisse
Vorausgesetzt werden gute Kenntnisse einer objektorientierten Programmiersprache wie Java oder C++. Das Konzept des Threads als Abstraktion eines Programmflusses sollte bekannt sein.
Lernziele
Nach dem Vortrag kennen die Zuhörer verschiedene moderne Konzepte für die Umsetzung von nebenläufigen Programmen. Im Einzelnen sind dies:
* rudimentäre Thread-Abstraktion
* Lock-Abstraktionen
* "Executoren" und Future Pattern
* Synchronisationskonzepte
* Parallelisierungs-Frameworks (ForkJoin-Framework, Streams und CompletableFuture)
* Weiterführende Konzepte, wie die Reaktive Programmierung
// Jörg Hettel
war als Berater bei nationalen und internationalen Unternehmen tätig. Er begleitete zahlreiche Firmen bei der Einführung objektorientierter Technologien. Seit 2003 ist er Professor an der Hochschule Kaiserslautern am Standort Zweibrücken. Seine aktuellen Arbeitsgebiete sind unter anderen verteilte Internet-basierte Transaktionssysteme und die Multicore-Programmierung.
// Manh Tien Tran
war wissenschaftlicher Mitarbeiter am Institut für Mathematik der Universität Hildesheim. Nach der Promotion war er als Softwareentwickler bei Bosch Blaupunkt und Harman Becker beschäftigt. Seit 2000 ist er Professor an der Hochschule Kaiserslautern am Standort Zweibrücken. Seine aktuellen Arbeitsgebiete sind Frameworks, Embedded-Systeme und die Multicore-Programmierung.