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

Kontaktujte nás

Virtuálně se můžete přidat i ke školením ve výše nabízených lokalitách. Do poznámky v objednávce prosím uveďte „Připojím se virtuálně“

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
    4. Reaktivní programování, `CompletableFuture`, Reactive Streams (Flow), Push Streams (OSGi)
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 za osobu:
9 600,00 Kč (11 616,00 Kč včetně 21% DPH)

Vybrané zákaznické reference

TRASK SOLUTIONS a.s., Samuel P.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Nič by som nemenil, výborne pripravené."
HighTec EDV Prague s.r.o., Michal K.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Skoleni bylo velmi dobre pripravene, kurz poskytl velmi dobry zaklad do dalsi prace, ktera je pred nami a zaroven lektor bystre zhodnotil nasi dosavadni snahu v teto oblasti. Nemam co vytknout, splnil mnohem vice nez jsem ocekaval."
HighTec EDV Prague s.r.o., Petr N.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"S kurzem jsem byl velmi spokojeny. Naprosto splnil me ocekavani. Me obavy z online skoleni se ani v nejmensim nenaplnily. Skolitel (p. Dolezal) je velmi prijemny, ochotny a hlavne oplyvajici velmi sirokou skalou vedomosti. Naprosto nemam co vytknout! Kurz mohu jen doporucit."
Česká pošta, s.p., Jiří K.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Děkuji za školení, bylo velice přínosné s velkým množstvím ukázek a kvalitním teoretickým backgroundem. Možná bych uvítal větší kontakt s konkrétnímu use cases, ale vzhledem k rozsahu předávaných informací rozumím, že to není zcela možné."
Česká pošta, s.p., Jakub M.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Školení hodnotím pozitivně, líbila se mi zejména řada praktických úkázek kódu, výklad lektora byl velice srozumitelný. Meetingové prostředí fungovalo bez problémů. Teoretická část byla dosti podrobná, spokojil bych se s menší hloubkou teoretického výkladu."
Česká pošta, s.p., Michal E.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Maximální spokojenost. Děkuji"
ATLAS consulting spol. s r.o., Richard S.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"děkuji .. nechybělo nic, naopak"
Československá obchodní banka, a. s., Marian M.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"supr, do detailu, jasne prehladne"
T-Mobile Czech Republic a.s., Antonín K.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Kurz prezentoval velke mnozstvi prikladu, ktere jsem vzhledem k jeho omezene dobe trvani nestihl sam vsechny vyzkouset. Kurz beru jako velmi dobry zaklad pro sve dalsi studim v teto oblasti."
Hönigsberg & Düvel Datentechnik Czech s.r.o., Lukáš K.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"vyucijici bez chyby. Pouze sama chvala."
Hönigsberg & Düvel Datentechnik Czech s.r.o., Ota Š.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Toto skoleni bylo velkym prinosem znalosti a pan skolitel ma velky prehled. Ke kazdy otazce dal vstricnou a smysluplnou odpoved. Tento kurz musim velice pochvalit."
MoroSystems, s.r.o., Lukáš S.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Lektor jako minule perfektně připraven, odborné znalosti na vysoké úrovni. Děkuji."
MoroSystems, s.r.o., Jan F.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Lektor s hlubokými znalostmi připraven odpovídat na jakékoli otázky."
MoroSystems, s.r.o., Martin P.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Dobrý kurz. Dobrý lektor."
MoroSystems, s.r.o., Jiří M.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Spousta praktických informací. Získání ucelenějšího pohledu na různá zákoutí Javy. Lektor má obrovské znalosti o ledasčem."
MoroSystems, s.r.o., Jakub Ř.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Lektor byl skvěle odborně připravený a jeho výklad byl přehledný a srozumitelný. Načerpal jsem spoustu užitečných znalostí a postřehů. "
MoroSystems, s.r.o., Boris B.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Velka pochvala lektorovi, vedomosti a pristup bez pripomienok, ochota venovat sa otazkam aj mimo oficialneho casu kurzu."
MoroSystems, s.r.o., Kristýna K.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"skoleni se mi moc libilo, lektor mel vysokou uroven znalosti a umel predat zanlosti pochopitelnym zpusobem"
MoroSystems, s.r.o., Tomáš R.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Teoretická část byla dobře vyvážená, neobsahovala moc "vaty" ale přinesla potřebný background pro příklady a identifikaci možných problémů."
MoroSystems, s.r.o., Michael B.
Java: Concurrent Programming - vícevláknové programování v Javě ( JAV4)
"Lektor byl ochotný věnovat se i tématům, které nebyly v původním harmonogramu a přizpůsobil plán kurzu preferencím jaho účastníků"
oXy Oshop 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ý."