Veranstaltungsort

München, NH-Hotel Neue Messe

Inhouse-Seminar

Haben Sie Interesse an einer individuellen Inhouse-Schulung zu diesem Thema? Nehmen Sie einfach Kontakt mit uns auf.

»Anfrage für Inhouse-Seminar

Ansprechpartner

Steffen Hertlein
Tel.: +49 (0)69 630089 11
Fax: +49 (0)69 630089 89
E-Mail: shertlein@entwickler
-akademie.de

Das Java Memory Modell und Lock-Free-Programming

Dauer

1 Tag

Seminarbeschreibung

Mit der zunehmenden Verwendung von Multicore-Prozessoren ergibt sich für Java-Entwickler die Notwendigkeit, das Java-Memory-Modell genauer zu verstehen. Es kann nämlich passieren, dass Multithread-Anwendungen auf Single-Core-Systemen "fehlerfrei" funktionieren, auf einer Multi-Core-Architektur "unerklärlicherweise" Fehler liefern. Das kann u.U. mit dem Caching auf Prozessorlevel zusammenhängen. Um generell auf die Problematik aufmerksam zu machen, nehmen wir in dem Tutorial das Java- Memory-Modell etwas genauer unter die Lupe.

Aber nicht nur das Memory-Modell wird immer wichtiger, sondern auch die Vermeidung von Synchronisation spielt eine zunehmende Rolle. Mit der Verbreitung von Multicore-Prozessoren wird erwartet, dass Anwendungen skalieren in dem Sinne, dass sie mit mehr Prozessorkernen schneller laufen. Dieser wünschenswerte Effekt ergibt sich aber nicht von allein, sondern ein Java-Programm muss so programmiert sein, dass es die mehreren Prozessoren auch ausnutzt. Im Klartext heißt es für den Entwickler, dass er sequentielle, d.h. nichtparallele Verarbeitungen reduzieren muss. Dazu gibt es zahlreiche Techniken. Der Verzicht auf Synchronisation mithilfe von Locks gehört dazu. In diesem Zusammenhang spielen AtomicVariables und Lock-Free Programming eine Rolle.

Der Workshop erläutert das Java-Memory-Modell, die Probleme mit der Visibility und dem Reordering, die Verwendung von volatil und atomic- Variablen, die Implementierung von unveränderlichen Typen, die Bedeutung von final-Feldern und der Initialisation-Safety-Garantie, und grundlegenden Techniken des Lock-Free Programming.

Seminarinhalt

  • Java-Memory-Model
  • Visibility, Atomicity, Reordering
  • Garantien für volatile
  • Double-Checked Locking
  • Initialisation Safety für final-Felder
  • Safe Object Sharing
  • Atomare Variablen
  • Lock-Free Programming

Ziel

  • LINQ-Operatoren
  • Abfrage Optimierungen
  • Einsatzbereiche für LINQ
  • LINQ mit eigenen Operatoren erweitern

Teilnehmerkreis

Java-Entwickler, die Parallelverarbeitungen für Multicore-Architekturen entwickeln oder sich ganz allgemein für Multithread-Programmierung in Java interessieren.

Teilnehmervoraussetzungen

Grundkenntnisse Java und Multithreading

Technische Voraussetzungen

Notebook/PC mit einer Installation von Java 5 oder 6. Außerdem ist eine Installation des Test-Tools ConTest zu empfehlen; kann von http://www.alphaworks.ibm.com/tech/contest/download heruntergeladen werden.

Zusätzliche Hinweise

Das Training beginnt um 9:00 Uhr und endet um 17:00 Uhr. Enthalten ist eine Pause mit Snacks, Kaffee und Softgetränken am Vormittag und Nachmittag sowie eine Stunde Mittagspause mit Buffet.

Bitte beachten Sie: Für die Teilnehmer des Workshops bietet das Novotel unter dem Kennwort „Entwickler Akademie“ einen Sonderpreis für die Übernachtung. Einzelzimmer können Sie für € 109,- inkl. Frühstück buchen.