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

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

Datum:
16.10.2013, 20:15
Slides:
PDF
Aufzeichnung:

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

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. Es ist ihm ein wichtiges Anliegen die Wartbarkeit von Softwaresystemen durch guten Code zu erhalten und zu verbessern.

Location


diva-e Netpioneer GmbH
Ludwig-Erhard-Allee 20
76131 Karlsruhe

Unterstützer & Sponsoren

Info

API Conference 2017

Powered by Jekyll & Git - Revision cc4359f