Kurz je určený pre pokročilých vývojárov, ktorí sa chcú zoznámiť s novými konceptmi a triedami pre tvorbu prenositeľných viacvláknových aplikácií pomocou štandardných C++ 11 knižníc. Vysvetlíme typické problémy paralelných aplikácií ako napr. [...]
  • CPP_THR
  • Dĺžka 1 deň
  • 10 ITK bodov
  • 6 termínov
  • Bratislava (230 €)

    Brno (5 300 Kč)

    Praha (5 300 Kč)

  • Mierne pokročilý

Kurz je určený pre pokročilých vývojárov, ktorí sa chcú zoznámiť s novými konceptmi a triedami pre tvorbu prenositeľných viacvláknových aplikácií pomocou štandardných C++ 11 knižníc. Vysvetlíme typické problémy paralelných aplikácií ako napr. súbeh operácií na zdieľaných dátach ("Race Condition") alebo uviaznutie ("Deadlock"). Predstavíme vlákna ("Threads") a použitie paralelných úloh ("Task Parallelism"). Pozrieme sa aj na kritické sekcie dôležité pre vzájomné vylúčenie vlákien, ich použitie pri objektoch typu "Monitor" a na odovzdávanie správ, výhody neblokujúcich operácií a atomické dátové typy.

»

Kurz je určený pre pokročilých vývojárov, ktorí sa chcú zoznámiť s novými konceptmi a triedami pre tvorbu prenositeľných viacvláknových aplikácií pomocou štandardných C++ 11 knižníc.

  • Používať triedy a funkcie z moderných C++ 11 viacvláknových knižníc.
  • Vytvárať aplikácie schopné využiť súčasný masívne paralelný hardware.
  • Premýšľať o základných problémoch návrhu paralelného software.
  • Skúsenosť s programovaním v jazyku C++.
  • Triedy, konštruktory, deštruktory, automatická správa zdrojov.
  • Veľkou výhodou sú predchádzajúce skúsenosti s tvorbou viacvláknových aplikácií pomocou iných knižníc (Posix, WinAPI, MFC, ...).
  1. Vlákna
    • Vytváranie vlákien pomocou triedy Thread
    • Fork and Join model
    • Samostatné vlákna
    • Odovzdávanie parametrov
    • Transport výnimiek
  2. Paralelné úlohy
    • Vytváranie paralelných úloh pomocou Async
    • Návratová hodnota paralelnej úlohy, trieda Future
    • Čakanie na výsledok paralelnej úlohy
    • Trieda Packaged_task
    • Trieda Promise a detaily triedy Future
    • Trieda Shared_future.
  3. Kritické sekcie
    • Trieda Mutex
    • Vzťah "Happens-before", zamykanie a odomykanie.
    • Trieda Lock_guard a Unique_lock
    • Monitor objekty
    • Jednorázová inicializácia pomocou Call_once.
  4. Signalizovanie pomocou Condition Variables
    • Producent a konzument
    • Metódy Notify a Wait
    • Falošné prebudenie (Spurious Wakeup)
    • Protokol v súvislosti so zmenou stavu zdieľanej premennej
  5. Atomické typy
    • Trieda Atomic
    • Blokujúce a neblokujúce operácie
    • Lock-free dátové štruktúry
Aktuálna ponuka
Školiace miesto
Jazyk kurzu

Uvedené ceny sú bez DPH.