München, NH-Hotel Neue Messe
Haben Sie Interesse an einer individuellen Inhouse-Schulung zu diesem Thema? Nehmen Sie einfach Kontakt mit uns auf.
»Anfrage für Inhouse-Seminar
Mirko Hillert
Tel.: +49 (0)331-282-2225
Fax: +49 (0)331-282-2228
E-Mail: mhillert@entwickler-akademie.de
1 Tag
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.
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.