Einschreibeoptionen

Voraussetzungen:

Voraussetzungen: Imperative und Objektorientierte Programmierung in einer beliebigen Programmiersprache, wir verwenden in der Veranstaltung Java von denen man die relevanten Teile auch im Selbststudium (erster Foliensatz) erlernen kann. Die Kenntnisse sind auf alle Programmierumgebungen und Sprachen anwendbar.

Lernziele:
• Phänomene der Nebenläufigkeit zu erkennen, testen und vermeiden
• Nebenläufigkeit für die Lösung von algorithmischen Problemen richtig einzusetzen
• Typische Patterns der Programmierung mit Nebenläufigkeit problemadäquat einzusetzen
Die erworbenen Fähigkeiten erlauben es, korrekte, nebenläufige Anwendungen zu realisieren, die für mehrere Prozessorkerne skalieren.
Inhalte:
• Grundlagen: Thread-API, kritische Bereiche, Synchronisation
• Unveränderbare Objekte, threadsichere Klassen, Composition
• Sichere Container, Iteration, Sperrgranularität
• Explizite Sperren, Futures, Barriers, Sperrpriorisierung, Fairness
• Ausführung von Tasks, Thread Pools, Fork/Join, Work Stealing
• Blockieren, Unterbrechen, Abbruch und Beenden
• Vermeiden von Verklemmung und Fortschrittsbehinderung
• Nichtblockierende Synchronisation
• Testen von nebenläufigen Anwendungen, statische und dynamische Codeanalyse, Performance-Messungen
• Active Objects, Actor-Prinzip

Selbsteinschreibung (Student)
Selbsteinschreibung (Student)