JDK8: Neuerungen in java.util.concurrent

Hartmut Schlosser

In Java 8 sollen bekanntlich Lambda-Ausdrücke eingeführt werden, die u.a. Closures ermöglichen und die nebenläufige Programmierung verbessern. Das Package java.util.concurrent, das Hilfsklassen für eben diesen Zweck bereit hält, wird deshalb gemäß den Spezifikatiionen aus „Project Lambda“ angepasst werden. Doch auch andere Neuerungen, die nichts mit Lamdas zu tun haben, wird es in java.util.concurrent geben. Java-Experte Doug Lea beschreibt diese nun in einem aktuellen Blogeintrag, in dem er den Entwurf für ein offizielles JDK Enhancement Proposal (JEP) präsentiert.

Die erste Neuerung sind skalierbare und Update-fähige Variablen, die ein gängiges Performance-Problem beheben sollen: die Nutzung einer einzigen count- oder sum-Anweisung durch verschiedene Threads. Dies soll durch eine Menge neuer Klassen wie LongAdder, DoubleAdder,LongMaxUpdater und DoubleMaxUpdater verbessert werden, die mittels Konfliktvermeidungstechniken bessere Durchlaufraten erzielen sollen als atomare Variablen.

Des Weiteren sollen Features und möglicherweise auch APIs hinzukommen, die ConcurrentHashMaps und davon abgeleitete Klassen nützlicher als Caches machen: „These include methods to compute values for keys when they are
not present, as well as improved support for scanning and possibly
evicting entries“.

Als dritte Ergänzung sollen ForkJoinPools durch zusätzliche Funktionalitäten und eine verbesserte Performance aufgewertet werden. Beispielsweise soll es „Completion-based Designs“ geben, die gängige IO-Szenarien abbilden. Möglicherweise werden auch ein Fences API, Sequence Locks und andere Features hinzukommen, die die Entwicklung von STM (Software Transactional Memory) Frameworks verbessern. STM Support selbst liegt indes nicht im Zielbereich von JDK 8.

Wie Lea mitteilt, sind erste Versionen dieser Features bereits außerhalb des OpenJDK verfügbar. Erwünscht ist ein frühes Feedback, um eine möglichst reibungslose Integration in das OpenJDK zu garantieren. Der JEP soll in den nächsten Tagen offiziell eingereicht werden.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.