Jazyk C++ - vlákna a paralelní programování v C++

C30

Kurz Jazyk C++ – Vlákna a paralelní programování v C++ 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.    

Kurz akreditovaný pro DVPP

Délka kurzu: 1 den (8:30 - 16:00)

Termíny

20. 1. 2022 - 20. 1. 2022 Praha cs Volný termín
17. 3. 2022 - 17. 3. 2022 Praha cs Volný termín
23. 5. 2022 - 23. 5. 2022 Praha cs Volný termín

PDF ke stažení Rozbalit všeSbalit vše

  • Absolvent kurzu bude umět

    • Řešit problémy paralelních aplikací jako souběh operací na sdílených datech ("race condition") nebo uváznutí ("deadlock")
    • Užívat vlákna ("threads") a paralelní úlohy ("task parallelism")
    • Rozeznat kritické sekce důležité pro vzájemné vyloučení vláken a jejich použití u objektů typu "monitor"
    • Předávat zprávy, výhody neblokujících operací a atomické datové typy.    
  • Požadavky pro absolvování kurzu

    Zkušenosti s programováním.

  • Kurz určen pro

    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.

  • Literatura

    Všichni účastníci školení obdrží materiály společnosti OKsystem.

  • Technické vybavení

    Prostorné učebny jsou vybaveny nadstandardními počítači s možností přístupu na Internet, včetně bezdrátového přístupu.

  • Osnova

    • Vytváření vláken pomocí třídy thread
    • Fork and join model
    • Samostatná vlákna
    • Předávání parametrů
    • Transport výjimek
    • 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
    • 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
    • Producent a konzument. Metody notify a wait
    • Falešné probuzení (spurious wakeup)
    • Protokol kolem změny stavu sdílené proměnné
    • Třída atomic
    • Blokující a neblokující operace
    • Lock-free datové struktury

     

Ceny jsou bez DPH. OKsystem a.s. si vyhrazuje právo změnit termín a cenu školení.