Programowanie wielowątkowe w C#

Zakres szkolenia

Szkolenie przeznaczone dla programistów chcących poznać techniki efektywnego programowania współbieżnego w języku C#. W trakcie szkolenia omawiane jest zarządzanie wątkami CLR, prawidłowa synchronizacja współdzielonych obiektów z wykorzystaniem muteksów oraz semaforów, PLINQ, Parallel Extensions.


Plan szkolenia

Wątki CLR

  • Bezpośrednie używanie wątków - klasa System.Thread
  • Synchronizacja wątków - klasy Monitor, Mutex, Semaphore
  • Unikanie zakleszczeń
  • Synchronizacja za pomocą zdarzeń - Event Wait Handles
  • Bariery
  • Leniwa inicjalizacja
    • Double-Checked Locking Pattern
    • Lazy<T>
  • Zegary - Timers

Programowanie współbieżne w .NET Framework

  • Pula wątków CLR - korzystanie z wątków puli CLR
  • Parallel Extensions - klasa Parallel
  • Parallel LINQ - PLINQ
  • Task Parallel Library
    • klasa Task
    • kontynuacje zadań
    • kooperatywny model anulowania zadań
  • Metody asynchroniczne w C# - async - await
  • Kolekcje thread-safe w .NET Framework

Wzorce programowania współbieżnego

  • Wzorzec Producer-Consumer
  • Wzorzec Active Object

Debugowanie i testowanie kody wielowątkowego

  • Testowanie kodu współbieżnego
  • Typowe problemy i ich rozwiązania
    • lock contention
    • lock convoys
    • oversubscription
    • partitioning problems
    • i/o bottlenecks

Dobra znajomość tematów ze szkolenia Programowanie w języku C#

3 dni po 8 godzin lekcyjnych