Programowanie asynchroniczne w C++ - Structured Concurrency

Cele szkolenia

Po zakończeniu szkolenia uczestnicy będą potrafili:

  • identyfikować ograniczenia std::thread oraz std::future
  • stosować korutyny do implementacji asynchronicznych zadań
  • projektować asynchroniczne algorytmy zgodnie z paradygmatem Structured Concurrency
  • budować złożone potoki asynchroniczne za pomocą standardowych adapterów (Sender adaptors)
  • implementować obsługę błędów oraz możliwość anulowania zadania w przepływach asynchronicznych
  • wykorzystywać std::task z C++26 do płynnej współpracy z korutynami

Plan szkolenia

Ewolucja asynchroniczności w C++ (od C++11 do C++26)

  • Problemy klasycznego podejścia
    • Ograniczenia std::thread, std::future i std::promise
    • Zarządzanie zasobami w implementacjach wykorzystujących callback'i
  • Korutyny w C++20
  • Structured Concurrency w C++26 - Senders/Receivers

Korutyny

  • Korutyny jako uogólnienie funkcji
  • Mechanika korutyn w C++
    • Punkty zawieszenia - co_await
    • Typ zwracany z korytyny
    • Interfejs korutyny promise_type
    • Uchwyt korutyny - std::coroutine_handle
  • Awaiters & Awaitable
  • Tworzenie własnych typów zadań
    • Implementacja typów Task i Generator
    • Symetryczny Transfer

Senders/Receivers - std::execution

  • Trzy filary abstrakcji:
    • Schedulers - zarządzanie miejscem i czasem wykonania (thread pools, GPU, execution contexts)
    • Senders - opis operacji asynchronicznej (leniwa ewaluacja)
    • Receivers - obsługa wyniku, błędów lub anulowania
  • Kompozycja operacji asynchronicznych
    • Budowanie potoków (pipelines) za pomocą adapterów
    • Algorytmy asynchroniczne
  • Anulowanie operacji asynchronicznych
  • Obsługa błędów w algorytmach asynchronicznych
  • Integracja z korutynami - std::task
    • Awaitable Senders

Wymagania

Opanowane tematy ze szkolenia Programowanie wielowątkowe w języku C++.

Czas trwania

3 dni po 8 godzin lekcyjnych
Wycena szkolenia zamkniętego

Szkolenie zamknięte w siedzibie Klienta.

Klient zapewnia salę szkoleniową i sprzęt.

Zapytaj o termin i cenę
Wycena szkolenia zdalnego

Szkolenie zamknięte w siedzibie Klienta.

Szkolenie live online. Warsztaty z trenerem.

Zapytaj o termin i cenę
Terminy szkoleń otwartych

Brak terminu?

Zgłoś zainteresowanie szkoleniem