Wielowątkowe i asynchroniczne aplikacje w Javie
Wielowątkowe i asynchroniczne aplikacje w Javie
Informacje podstawowe
Informacje podstawowe
- KategoriaInformatyka i telekomunikacja / Programowanie
- Grupa docelowa usługi
Szkolenie jest dedykowane dla osób chcących poznać możliwości programowania wielowątkowego i asynchronicznego w języku Java
- Minimalna liczba uczestników4
- Maksymalna liczba uczestników8
- Data zakończenia rekrutacji20-10-2025
- Forma prowadzenia usługizdalna w czasie rzeczywistym
- Liczba godzin usługi16
- Podstawa uzyskania wpisu do BURCertyfikat systemu zarządzania jakością wg. ISO 9001:2015 (PN-EN ISO 9001:2015) - w zakresie usług szkoleniowych
Cel
Cel
Cel edukacyjny
Nabycie umiejętności programowania wielowątkowego oraz asynchronicznego w Javie z uwzględnieniem nowości wprowadzanych do języka Java przez ostatnie lataPoznanie niuansów języka Java w zakresie dostępnych elementów wspomagających programowanie wielowątkowe i asynchroniczne
Omówienie i praktyczne przetestowanie wpływu zastosowanych rozwiązań na wydajność napisanego kodu
Poznanie możliwości debugowania i testowania wielowątkowej aplikacji.
Efekty uczenia się oraz kryteria weryfikacji ich osiągnięcia i Metody walidacji
Efekty uczenia się | Kryteria weryfikacji | Metoda walidacji |
---|---|---|
Efekty uczenia się Uczestnik programuje wielowątkowo oraz asynchronicznie w Javie | Kryteria weryfikacji Uczestnik stworzył realny projekt, który można wygodnie udostępnić, skomentować i zaprezentować. | Metoda walidacji Obserwacja w warunkach rzeczywistych |
Metoda walidacji Test teoretyczny |
Kwalifikacje i kompetencje
Kwalifikacje
Kompetencje
Usługa prowadzi do nabycia kompetencji.Warunki uznania kompetencji
Program
Program
Terminologia na przykładzie JVM
- Programowanie współbieżne, wielowątkowe, asynchroniczne
- Niebezpieczeństwa związane z wielowątkowymi procesami - wyścigi, deadlock, zagłodzenie, livelock
- Sekcja krytyczna
- Cechy wątków w Javie
- Słowo kluczowe volatile oraz synchronized
- Zasady działania wielowątkowości w ramach JVM - Java Memory Model
- Poprawne tworzenie typów Thread-Safe
Tworzenie i koordynacja pracy wątków
- Standardowe i nowe API tworzenia wątków w Javie
- Interfejsy funkcyjne zadań realizowanych na wątkach - Runnable / Callable
- Typ CompletableFuture
- LockSupport park / unpark vs standardowy Thread.wait
- Asynchroniczna obsługa zapytań typu REST na przykładzie wbudowanego w JDK HttpClient
Egzekutory
- Porównanie dostępnych typów egzekutorów
- Harmonogramowanie zadań asynchronicznych z wykorzystaniem egzekutorów
Synchronizacja wątków z użyciem blokad jawnych i niejawnych
- proste blokady obiektowe - ReentrantLock, ReadWriteLock, StampedLock
- Semafor a licznik CountDownLatch
- CyclicBarrier i Phaser
Kolekcje i strumienie wielowątkowe
- Podstawowe kolekcje blokujące: ConcurrentHashMap, ConcurrentLinkedDeque/Queue
- Kolekcje skalowalne i automatycznie sortujące zawartość: ConcurrentSkipListMap, ConcurrentSkipListSet
- Kolekcje kopiujące zawartość: CopyOnWriteArrayList, CopyOnWriteArraySet
- Typy kolejek: porównanie interfejs TransferQueue, BlockingQueue wraz z dostępnymi implementacjami
- Wrappery na istniejące kolekcje: java.util.Collections.synchronized...
- Strumienie wielowątkowe
- Zagrożenia płynące z naiwnego używania strumieni wielowątkowych
Wykorzystanie istotnych elementów java.util.concurrent
- Zastosowanie typów atomowych
- Framework Fork/Join
- Typy reaktywne: Flow / Publisher / Subscriber
Wirtualne wątki
- Porównanie wątków fizycznych i wirtualnych
- Potencjalne problemy w używaniu wirtualnych wątków
- Typ ThreadLocal a ScopedValue
- Structured Concurrency - nowe spojrzenie na programowanie asynchroniczne w Javie
- Popularne frameworki a wirtualne wątki
Debugowanie / testowanie rozwiązań wielowątkowych
- Problemy w testowaniu aplikacji wielowątkowych
- Debugowanie z wykorzystaniem VisualVM / jstack
- Techniki pisania testów jednostkowych dla kodu wielowątkowego
- Oficjalne narzędzie od JDK: jcstress
Project reactor
Harmonogram
Harmonogram
Przedmiot / temat zajęć | Prowadzący | Data realizacji zajęć | Godzina rozpoczęcia | Godzina zakończenia | Liczba godzin |
---|---|---|---|---|---|
Przedmiot / temat zajęć 1 z 2 Terminologia na przykładzie JVM, Tworzenie i koordynacja pracy wątków, Egzekutory, Synchronizacja wątków z użyciem blokad jawnych i niejawnych, | Prowadzący Mateusz Kamiński | Data realizacji zajęć 27-10-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Przedmiot / temat zajęć 2 z 2 Kolekcje i strumienie wielowątkowe, Wykorzystanie istotnych elementów java.util.concurrent, Wirtualne wątki, Debugowanie / testowanie rozwiązań wielowątkowych, Project reactor | Prowadzący Mateusz Kamiński | Data realizacji zajęć 28-10-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Cena
Cena
Cennik
Rodzaj ceny | Cena |
---|---|
Rodzaj ceny Koszt przypadający na 1 uczestnika brutto | Cena 2 644,50 PLN |
Rodzaj ceny Koszt przypadający na 1 uczestnika netto | Cena 2 150,00 PLN |
Rodzaj ceny Koszt osobogodziny brutto | Cena 165,28 PLN |
Rodzaj ceny Koszt osobogodziny netto | Cena 134,38 PLN |
Prowadzący
Prowadzący
Mateusz Kamiński
Od 5 lat lider zespołu programistycznego Sages.
Od 9 lat mentor w zespołach programistycznych, doświadczony wykładowca bootcampu z Java, aktualnie wykładowca zajęć projektowych z programowania aplikacji na Politechnice Warszawskiej.
Informacje dodatkowe
Informacje dodatkowe
Informacje o materiałach dla uczestników usługi
materiały szkoleniowe - część teoretyczna szkolenia, slajdy - zostaną udostępnione uczestnikom na szkoleniu w formie pdf.
uczestnik otrzyma certyfikat uczestnictwa z opisem nabytych umiejętności
Warunki uczestnictwa
Podstawowa umiejętność programowania w języku Java
Informacje dodatkowe
Szkolenie będzie prowadzone zdalnie, w czasie rzeczywistym, na żywo, z trenerem, możliwością zadawania pytań.
Szkolenie składa się w 30% z wykładu teoretycznego, w 70% z warsztatów i samodzielnej pracy programistycznej.
Podczas szkolenia uczestnicy mają dostęp do czatu z trenerem, współdzielą ekran podczas części warsztatowej, żeby zaprezentować postęp swojej pracy.
Walidacja będzie bazowała na ocenie efektów samodzielnej pracy uczestników, będzie sprawdzała nabytą wiedzę teoretyczną i umiejętność jej zastosowania w praktyce.c
Warunki techniczne
Warunki techniczne
szkolenie na platformie zoom, wymagane:
stabilne połączenie internetowe (zalecane min. 10Mbit/s download i 1Mbit/s upload)
przeglądarka internetowa Chrome
zainstalowana aplikacja Zoom App
dobrej jakości słuchawki oraz mikrofon (opcjonalnie) kamera internetowa
link do szkolenia zostanie przesłany uczestnikom przed szkoleniem i będzie aktywny do końca szkolenia.