.NET Multithread-/Multicore-Programmierung
Zielgruppe:
Software-Entwickler, Software-Architekten, Projektleiter
Voraussetzungen:
Kenntnis der Programmiersprache C#. (C++ auf Anfrage)
Dauer:
3 Tage
Kursziel:
Sie sind in der Lage, auf .NET basierende Applikationen bestehend aus verschiedenen Prozessen und/oder Application Domains, sowie unabhängig laufenden Threads zu entwickeln. Sie kennen die vielfältigen Möglichkeiten der Thread-Synchronisation und wissen, worauf es bei einem guten Multithread-/Multicore Systementwurf ankommt.
Inhalt:
Prozesse
- Prozesseigenschaften
- Kreieren und Starten von Prozessen
- Prüfen des Prozesszustandes
- Beenden von Prozessen
- Warten auf das Ende eines Prozesses
Threads
- Erzeugen von Threads
- Threads mit Parameterübergabe
- Vordergrund-/Hintergrund-Threads
- Unterbrechen/Beenden von Threads
- Warten auf die Beendigung von Threads
- Prioritätenmodell und Scheduling
- ThreadPool
- Asynchrones Programmiermodell (APM)
Application Domains
- Application Domains und Prozesse
- Application Domain und Threads
Synchronisation
- Monitor
- Locks, Reader-/Writer-Locks
- Attributgesteuerte Synchronisation
- Atomare Operationen, Interlocked
- WaitHandle, Mutexe, Semaphore
- Prozessübergreifende Synchronisation
- Deadlocks
- Exception Handling
Ereignissignalisierung
- Monitor, Condition Variable
- Manual-/AutoResetEvents
Applikations-Design
- Entwurfskriterien für Prozesse, Threads und AppDomains
- Entwurfskriterien für Multicoresysteme
- Skalierbarkeit, Performanceoptimierungen
- Ausblick auf TPL