Parallele Programmierung in Java
Die Vielzahl der APIs für die Parallelität in Java zeigt die Bedeutung der Parallelisierung als Schlüsseltechnologie für performante Systeme. Mit der aktuellen Version sind die Virtual-Threads ins JDK eingezogen und haben einen Technologiesprung in Richtung Hochskalierbarkeit gebracht.
Wie aber konzipiere ich eine Parallelisierung, die sich implizit optimiert, die leicht zu entwickeln und gut wartbar ist, und die sowohl mit meinen Anforderungen als auch mit der Hardware skaliert? Welche Paradigmen der Parallelität können das? Wie sind sie realisiert?
Die folgenden Technologien stehen im Fokus:
- Threads: Basis für die Parallelität in Java
- Virtual Threads: Hochskalierbare Alternative zu klassischen Threads
- ForkJoinTasks: Parallelisierung von Algorithmen
- Parallel-Streams: Transparente Parallelisierung von Datenströmen
- Reactive-Streams: Implizite Parallelität mit Flusskontrolle für Verteilte Systeme
Dieses praxisorientierte Seminar mit vielen Programmierübungen zeigt die Unterschiede zwischen den relevanten APIs auf und leitet Regeln für ihre Anwendbarkeit in spezifischen Use-Cases ab. Sie lernen die jeweiligen Charakteristika hinsichtlich Performance, Skalierbarkeit und Stabilität kennen und sehen, wie die zugehörigen Technologien aufeinander aufbauen. Auf dieser Basis können Sie die richtige Technologie für ihr Projekt auswählen und tragfähige Architekturentscheidungen treffen.