Mit zunehmender Parallelisierung wird es auch in Programmiersprachen immer schwieriger, dafür zu sorgen, dass es auch unter den denkbar schlechtesten Voraussetzungen mit rechten Dingen zugeht. Für derartige Garantien ist das Speichermodell (Memory Model) zuständig.
In diesem Vortrag wird anhand von (Java-)Beispielen die Notwendigkeit von Speichermodellen erläutert und erklärt, was diese für die Programmiersprachen bedeuten und was es mit diesem "happens before" auf sich hat und wie sich dies auf die Sichtbarkeit von Änderungen bei Mehrkernprozessoren oder Parallelrechnern auswirkt. Zusätzlich wird erläutert, was all das beispielsweise mit dem volatile in Java oder C++ zu tun hat und welche Konsequenzen dies für die Performanz nach sich zieht. Und nicht zuletzt: Warum es in Java die Unsafe-Klasse geben muss und wie man sich diese für Optimierungen zunutze machen kann.
Vorkenntnisse
Keine Vorkenntnisse nötig.
Lernziele
Nach dem Vortrag sind die Teilnehmer mit der Notwendigkeit eines Speichermodells und dessen Garantien vertraut.
// Michael Wiedeking
ist Gründer der Mathema Software GmbH. Er ist Java-Programmierer der ersten Stunde, schreibt regelmäßig Artikel und spricht auf Konferenzen. Am liebsten aber sammelt er Programmiersprachen und beschäftigt sich mit ihrem Design und ihrer Implementierung – neuerdings besonders mit seiner eigenen: Aalgola.