Neue JVM-Concurrency-Modelle wie Aktoren und Verticles
Nebenläufigkeit heißt in Java: java.util.concurrent und Threads. Threads wurden ursprünglich als "lightweight processes" tituliert. Neue Prozesse zu starten, um nebenläufige Operationen zu implementieren, bedeutete zu viel Overhead und hat das Problem der Kommunikation zwischen den Prozessen aufgeworfen. Threads sollten "leicht" sein und beide Nachteile beseitigen: weniger Ressourcen für die Erzeugung und Scheduling, und gemeinsame Speichernutzung.
Allerdings stößt das Modell heute an seine Grenzen. Der Ressourcenverbrauch ist immer noch zu groß und der gemeinsame Speicher mehr Problem als Lösung: Race Conditions, Locks, Contention. Um Oracles Java-VM-Architekten John Rose zu zitieren: "Threads sind passé". Wir wollen verschiedene Ansätze betrachten, Nebenläufigkeit unterhalb des Thread-Levels umzusetzen, und ihre Vor- und Nachteile beleuchten. Vorgestellt werden Quasar Fibers, Clojure Agents, Vert.x Verticles und Akka Actors.