Multi-Threading und Synchronisation
- Einführung in die nebenläufige/parallele Programmierung und zugrundeliegenden Systemarchitekturen
- Multi-Threading mit .NET und/oder Java
- Kritische Abschnitte und Synchronisationsmechanismen
- Monitor-Konzept und deren Umsetzung in gängigen Sprachen
- Spezifische Synchronisationsprimitiven (Semaphore, Reader-Writer Locks, Latches, Barrieren u.a.)
- Korrektheits- und Fairnessbedingungen; Problematik von Race Conditions, Deadlocks und Starvations
Thread Pools und effiziente Parallelisierung
- Thread Pools: Mechanismus, Eignung und Limitationen
- Task- und Daten-Parallelität
- Parallele Algorithmen (Sortierung, Suchen etc.)
- Asynchrone Programmierung
- GUI und Nebenläufigkeit
- Entwurfsmuster der Nebenläufigkeit (Producer/Consumer, Concurrent Pipelines, Reader/Writer, Recursive Parallel)
- Speichermodelle: Atomarität, Sichtbarkeit und Optimierung
- Lock-Free & Wait-Free Datenstrukturen
Fortgeschrittene Nebenläufigkeitsmodelle
- Verteilte Parallelisierung mit Actors/CSP
- Cluster Computing mit MPI
- Software Transactional Memory
- Vektorparallelisierung; GPU / Coprozessor-Parallelisierung