Trwają zapisy do grupy

Szkolenie: Wielowątkowe i asynchroniczne aplikacje w Javie

Podczas szkolenia uczestnicy poznają metody tworzenia wielowątkowych i asynchronicznych aplikacji z uwzględnieniem nowoczesnych technik i narzędzi dostępnych w najnowszych wersjach języka Java.

  • Trenerzy praktycy
  • Kameralne grupy

Czas trwania szkolenia:2 dni (16h)

Poziom zaawansowania:

Kod kursu:J/PARA

javamultithreading

Dostępne terminy szkolenia

  • Termin
  • Trener
  • Cena
  • Zapis
  • Lokalizacja

Termin:

27 marca
Trwają zapisy na szkolenie

Trener:

Trener-Sages

Cena:

2150 PLN netto
Ikona podpowiedziDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Ikona podpowiedziZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Forma szkolenia

Interesuje Cię szkolenie stacjonarne?

Powiadom o kolejnych terminach

Interesuje Cię szkolenie w innym terminie?

Wielowątkowe i asynchroniczne aplikacje w Javie

Cele szkolenia

  • Nabycie umiejętności programowania wielowątkowego oraz asynchronicznego w Javie z uwzględnieniem nowości wprowadzanych do języka Java przez ostatnie lata

  • Poznanie 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


Dla kogo?

  • Osób chcących poznać możliwości programowania wielowątkowego i asynchronicznego w języku Java


Zalety

  • Przekrojowe omawianie zagadnień oraz przykłady oparte o życiowe problemy

  • Promowanie obowiązujących konwencji i dobrych praktyk programistycznych

  • Minimalna teoria oparta na praktycznych przykładach i warsztatach

  • Praktyczna wiedza uwzględniająca zmiany wprowadzone w najnowszych wydaniach Javy


Wymagania

  • Podstawowa umiejętność programowania w języku Java


W cenie otrzymasz:

  • Materiały szkoleniowe

  • Certyfikat ukończenia szkolenia

  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Program szkolenia

Pobierz program w PDF

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 (Opcjonalnie)

Autorem szkolenia jest Mateusz Kamiński

Absolwent informatyki Instytutu Informatyki na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej, obecnie Engineering Manager w Sages. Przez wiele lat prowadził zespoły programistyczne wytwarzające współczesne oprogramowanie, kładąc przy tym nacisk na jakość i elastyczność tworzonych rozwiązań. Od kilku lat lider zespołu technicznego Sages, który to w niedługim czasie z niewielkiego startupu rozwinął się w software house. Od początków kariery był mentorem w zespołach programistycznych,…