Wednesday, October 16, 2013

Doppelvortrag: Überraschungen und Grundlagen bei der nebenläufigen Programmierung in Java/Message Passing Concurrency mit Akka

Überraschungen und Grundlagen bei der nebenläufigen Programmierung in Java

Viele Softwareentwickler arbeiten täglich mit Java und verwenden dessen Konstrukte zur nebenläufigen Programmierung (synchronized, volatile und Co.) ohne sich Gedanken über deren technischen Hintergrund zu machen. Doch gerade bei der Suche nach Erklärungen zu subtilen Fehlern hilft einem ein grobes Verständnis der Grundlagen oft weiter.
Der Vortrag startet mit einem einfachen fehlerhaften Beispiel, dessen Fehler den meisten direkt auffallen dürfte, die sich schon mit Nebenläufigkeit in Java beschäftigt haben. Dabei werden wir unter anderem beobachten, dass

– der Code bei normaler Ausführung so nicht funktioniert.
– der Code, im Debugger ausgeführt, offensichtlich aber korrekt arbeitet.
– der Code nach dem Einfügen einer Debug-Ausgabe plötzlich zuverlässig funktioniert.

Die Erklärung für diese (vielleicht überraschenden) Beobachtungen liefert das Java Memory Model und ein Blick auf die Optimierungen des Just in Time (JIT) Compilers. Der Vortrag erläutert die wichtigsten Grundlagen für das Zusammenspiel des Java Memory Model und des JIT Compilers für eine korrekte, performante und plattformunabhängige Ausführung von Code in der JVM.

Christian Kumpe studierte Informatik am Karlsruher Institut für Technologie (KIT) und sammelte bereits während seines Studiums als Freelancer Erfahrung in diversen Java-Projekten. Seit 2011 arbeitet er als Softwareentwickler bei der Netpioneer GmbH in Karlsruhe. Seine aktuellen Themenschwerpunkte sind Java-basierte Portale und Internet-Plattformen. Dabei gilt sein Interesse auch den technischen Details der JVM und deren Bedeutung für die nebenläufige Programmierung.

Message Passing Concurrency mit Akka
Der gemeinsame Zugriff auf veränderlichen Zustand aus unterschiedlichen Threads ist eine häufige Fehlerquelle in Java-Anwendungen. Eine Alternative bietet das Toolkit Akka: Veränderlicher Zustand wird in Aktoren gekapselt, die untereinander über unveränderliche Nachrichten kommunizieren. Der Vortrag zeigt an einem Beispiel, dass der Einsatz von Akka zu wartbaren, fehlertoleranten und skalierbaren Anwendungen führen kann.

Florian Hopf arbeitet als freiberuflicher Softwareentwickler mit den Schwerpunkten Content Management und Suchlösungen in Karlsruhe. Er interessiert sich für die unterschiedlichsten Technologien und ist einer der Organisatoren der Java User Group Karlsruhe.

Wann: Am 16.10.2013 um 19:15 Uhr
Wo: Netpioneer GmbH
Ludwig-Erhard-Allee 20
76131 Karlsruhe

Quelle: http://jug-karlsruhe.mixxt.de/networks/events/show_event.82682

<< zurück zur Events-Übersicht