banner

Grundlagen zur 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 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 korrekt arbeitet.
  • der Code nach dem Einfügen einer Debug-Ausgabe plötzlich zuverlässig funktioniert.

Die Erklärung für diese (vielleicht unerwarteten) 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.

Uhrzeit: 
16:45 - 17:30
Track: 
Java

Referenten