Java: Concurrent Programming - vícevláknové programování v Javě (JAV4)

Programování, Java, Spring

Školení je určeno především pokročilejším vývojářům. Ačkoliv část úvodu je věnována zopakování terminologie a základních konceptů (thread, race condition apod.), neměly by tyto koncepty být pro posluchače úplnou novinkou. Kurz popisuje vývoj simultánních procesů s Javou. To zahrnuje koncepty paralelního programování, neměnnosti, vláken atd.

Lokalita, termín kurzu



Brno
12.10. - 13. 10. 2017
Objednat
23.11. - 24. 11. 2017
Objednat
4.1. - 5. 1. 2018
Objednat
Praha
16.10. - 17. 10. 2017
Objednat
27.11. - 28. 11. 2017
Objednat
8.1. - 9. 1. 2018
Objednat
Vlastní Školení na míru (termín, lokalita, obsah, délka)

Náplň kurzu:

Skrýt detaily
  • Úvod do concurrency
    1. Thread, multithreading, paralelní zpracování
    2. Výhody a úskalí; race conditions, deadlocks, livelocks, dopady na výkonnost
  • Exekuční model
    1. Pořadí vykonávání, uspořádání operací, paměťová viditelnost
    2. Java Memory Model, relace happens-before
    3. Využití
  • Concurrency v teorii
    1. Spravování stavu, nemodifikovatelnost
    2. Izolace a její techniky
    3. Bezpečná publikace objektů
  • Concurrency v praxi
    1. Idiomy: double-checked locking, lazy initialization holder, final wrapper
    2. Instance pooling
    3. Návrh thread-safe tříd; návrhové postupy a problémy
  • Základní podpora multithreadingu
    1. Monitory: JVM and Java, používání vestavěných zámků a podmínkových proměnných
    2. Thread: vykonávání, blokování a přerušení
    3. Ukončování JVM
  • Threading framework
    1. Thread pools, Executor framework, Fork Join Pool
    2. Návrh založený na aktivitách, plánování, futures
    3. Problém ukončení aktivit
  • Stavební bloky
    1. Synchronizace s nízkou režií: atomické proměnné, volatile
    2. Synchronizační primitiva: zámky, semafory, bariéry, čítače atd.
    3. Synchronized & concurrent collections
  • Problémy
    1. Deadlocks, livelocks, starvation: příčiny a řešení, techniky
    2. Amdahlův zákon, cena za paralelismus, výkonnost systému
    3. Problém „úzkého hrdla“, optimalizační strategie
    4. Neblokující techniky
  • Některé další frameworky
    1. NIO: neblokující I/O
    2. NIO.2: asynchronní I/O
    3. Fork Join Pool, podpora asynchronních úloh
Předpokládané znalosti:
Předpokládá se pokročilá znalost vývoje v jazyce Java (kurz JAV2).
Doporučený předchozí kurz:
Java - pokročilé techniky programování (JAV2)
Doporučený následný kurz:
Java pod pokličkou - vybraná témata pro pokročilé vývojáře v Javě (JAV5)
Časový rozvrh:
2 dny (9:00hod. - 17:00hod.)
Cena kurzu:
8 600,00 Kč (10 406,00 Kč včetně 21% DPH)

Vybrané zákaznické reference

oXy Online s.r.o., Martin Z.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Som spokojný s priebehom kurzu, pre mňa obsahoval dosť nových informácií, ktoré verím, že v budúcnosti využijem. Počas kurzu sme si aj precvičili preberané témy."
MoroSystems, s.r.o., Lukáš S.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Vše perfektní, lektor odborník, příjemný a ochotný."