Kód kurzu: CPP_THR« Krok zpět

Jazyk C++ – Vlákna a paralelní programování v C++

Kurz je určen pro pokročilé vývojáře, kteří se chtějí seznámit s novými koncepty a třídami pro tvorbu přenositelných vícevláknových aplikací s pomocí standardních C++ 11 knihoven. Vysvětlíme typické problémy paralelních aplikací jako souběh operací na sdílených datech ("race condition") nebo uváznutí ("deadlock"). Představíme vlákna ("threads") a použítí paralelních úloh ("task parallelism"). Uvidíme kritické sekce důležité pro vzájemné vyloučení vláken a jejich použití u objektů typu "monitor". Podíváme se na předávání zpráv, výhody neblokujících operací a atomické datové typy.

 DatumDnůCena kurzuCena materiálůJazyk výukyLokalita 
29.11.2018 1 5 300 CZK v ceně kurzu Český jazyk GOPAS Praha
 
12.3.2019 1 5 300 CZK v ceně kurzu Český jazyk GOPAS Praha
 
LM GTK 16.10.2018 1 4 505 CZK v ceně kurzu Český jazyk GOPAS Brno
 
23.4.2019 1 5 300 CZK v ceně kurzu Český jazyk GOPAS Brno
 
10.12.2018 1 185,00 EUR v ceně kurzu Slovenský jazyk GOPAS Bratislava
 
22.2.2019 1 185,00 EUR v ceně kurzu Slovenský jazyk GOPAS Bratislava
 
16.5.2019 1 185,00 EUR v ceně kurzu Slovenský jazyk GOPAS Bratislava
 

PobočkaDnůCena kurzuCena materiálůITB
Praha1 5 300 CZK v ceně kurzu 10
Brno1 5 300 CZK v ceně kurzu 10
Bratislava1 185,00 EUR v ceně kurzu 10

Pro koho je kurz určen

Kurz je určen pro pokročilé vývojáře, kteří se chtějí seznámit s novými koncepty a třídami pro tvorbu přenositelných vícevláknových aplikací s pomocí standardních C++ 11 knihoven.

Co vás naučíme

  • Používat třídy a funkce z moderních C++ 11 vícevláknových knihoven.
  • Vytvářet aplikace schopné využít současný masivně paralelní hardware.
  • Přemýšlet o základních problémech návrhu paralelního software.

Požadované vstupní znalosti

  • Zkušenost s programováním v jazyce C++.
  • Třídy, konstruktory, destruktory, automatická správa zdrojů.
  • Velikou výhodou jsou předchozí zkušenosti s tvorbou vícevláknových aplikací pomocí jiných knihoven (Posix, WinAPI, MFC, ...).

Metody výuky

Odborný výklad s praktickými ukázkami.

Studijní materiály

Materiály ke kurzu v elektronické podobě.

Osnova kurzu

1. Vlákna

  • Vytváření vláken pomocí třídy thread.
  • Fork and join model
  • Samostatná vlákna.
  • Předávání parametrů.
  • Transport výjimek.

2. Paralelní úlohy

  • Vytváření paralelních úloh pomocí async.
  • Návratová hodnota paralelní úlohy, třída future.
  • Čekání na výsledek paralelní úlohy.
  • Třída packaged_task.
  • Třída promise a detaily třídy future.
  • Třída shared_future.

3. Kritické sekce

  • Třída mutex
  • Vztah "happens-before", zamykání a odemykání.
  • Třída lock_guard a unique_lock
  • Monitor objekty.
  • Jednorázová inicializace pomocí call_once.

4. Signalizování pomocí condition variables

  • Producent a konzument. Metody notify a wait.
  • Falešné probuzení (spurious wakeup).
  • Protokol kolem změny stavu sdílené proměnné.

5. Atomické typy

  • Třída atomic
  • Blokující a neblokující operace.
  • Lock-free datové struktury.
Elektronické prezentace probírané látky

Cena:
v ceně kurzu
Uvedené ceny jsou bez DPH.


Graf návazností kurzů