Java Multithreading

Szkolenie skupia się na wielowątkowości, wielobieżności oraz programowaniu równoległym Java, w celu stworzenia asynchronicznego kodu.
Kod: JVA-054
Czas trwania: 16 godzin

Opis szkolenia

Szkolenie skupia się na wielowątkowości, wielobieżności oraz programowaniu równoległym Java zarówno na niskim poziomie aspektów jak i wysokim poziomie elementów interfejsu programistycznego (API) w celu stworzenia asynchronicznego kodu. Każdy rozdział skupia się na jednym z elementów API, takim jak wątki, blokady, synchronizatory itp. Kurs nie omawia narzędzi zewnętrznych i bibliotek.

Plan szkolenia

Teoria
  • Wielowątkowość i wieloprocesorowość
  • Podstawowe pojęcia - proces, wątek, dyspozytor
  • Równoległość i współbieżność
  • Prawo Amdahla i Gustafsona
  • Rodzaje wielowątkowości
  • Aplikacja wielowątkowa w Java

Tworzenie wątków
  • Wątek jako obiekt; tworzenie i uruchamianie wątku
  • Implementacja Runnable
  • Rozszerzenie klasy Thread
  • Porównanie Runnable i Thread
  • Użycie ThreadFactory
  • Cykl życiowy wątku
  • Stany wątku

Synchronizacja wątków
  • Wyjście z metody run
  • Użycie metody sleep
  • Użycie metody interrupt
  • Metody isInterrupted i interrupted
  • Użycie metody stop
  • Użycie wątku yield
  • Diagram stanów wątku

Priorytety wątków i wątki demony
  • Priorytety wątków
  • Priorytety w systemie operacyjnym
  • Wątki demony
  • Wątki infrastructure

Synchronizacja - podstawy
  • Synchronizacja czasu - sortowanie czasu
  • Problem utraconej aktualizacji
  • Sposoby synchronizacji wątków
  • Koszty synchronizacji
  • Keyword Synchronize
  • Monitory
  • Bloki synchronizacji
  • Model Producent - Konsument
  • Cykl życiowy wait, notify i thread
  • Wait vs sleep
  • Model Producent - Konsument z zastosowaniem pipe

Zakleszczenie
  • Co to jest zakleszczenie?
  • Przykłady zakleszczeń

Volatile i wartość atomowa
  • Wydajność pamięci
  • Model pamięci procesora
  • Kompilator a procesor
  • Model pamięci Javy
  • Keyword volatile
  • Algorytm CAS
  • Atomic References
  • Przykład licznika

Kolekcje
  • Problem połączenia z serwerem
  • Kolekcje synchronizowane
  • Biblioteka wielowątkowa
  • Kolekcje wielowątkowe
  • Queue i Deque
  • BlockingQueue

Blokada i semafor
  • Interfejs blokady
  • Condition w blokadach
  • ReadWriteLock
  • Interfejs semafora

Synchronizatory
  • Wprowadzenie - gdzie użyć semafora a gdzie synchronizatora
  • CountDownLatch
  • TransportTyconTutor - wszystkie przykłady użycia synchronizatorów i semaforów!
  • CyclicBarrier
  • Phaser
  • Phaser - etapy i tutorial

Executor Framework
  • Dlaczego potrzebny jest ExecutorFramework
  • Executor i ExecutorService
  • ThreadPool
  • Zaplanowane zadania
  • Bieżące zadania
  • Wstrzymane zadania
  • Interfejs Future

ForkJoinFramework
  • Dlaczego potrzebny jest ForkJoinFramework
  • Podstawy - algorytm dziel i zwyciężaj
  • Ograniczenia
  • Elementy - pula i zadanie
  • Działania i zadania cykliczne
  • Przepływ pracy
  • Asynchroniczne szukanie

Asynchroniczne programowanie
  • Programowanie asynchroniczne i synchroniczne
  • Interfejs CompletableFuture
  • Łączenie i komponowanie CompletableFutures
  • Podsumowanie metody

Przechowywanie danych w wątkach
  • Dzielenie bieżących obiektów pomiędzy wątkami
  • Wartości nadrzędne w obiektach
  • ThreadLocal Store

Wyjątki
  • Wyjątki w wielowątkowej aplikacji
  • Obsługa wyjatków w UncatchingExceptinoHandler

Cele

Doskonalenie umiejętności programowania Java w zakresie wielowątkowości w drodze dyskusji oraz analizy konkretnych przypadków.

Grupa docelowa

Młodsi i średniozaawansowani programiści Java oraz zaawansowani programiści Java, którzy chcą poznać bardziej zaawansowane elementy API.

Zapisz sie na nastepny kurs
+
Wczesniejsza rejestracja gwarantuje priorytet. Powiadomimy panstwa o nastepnym zaplanowanym szkoleniu na ten temat.
Bucharest 1386 zł
Kraków 1386 zł
Wroclaw 1386 zł

Uprzejmie informujemy, że płatność za każde szkolenie będzie realizowana w lokalnie obowiązującej walucie. Jednocześnie informujemy, że podane ceny mogą ulec zmianie w zależności od lokalizacji szkolenia oraz trybu jego realizacji. Do ceny netto widocznej przy wybranym szkoleniu należy doliczyć 23% podatku VAT.

Szkolenia, które mogą Cię zainteresować:
JVA-05470752

Zarejestruj się na następne szkolenie

Imię*
Nazwisko*
Firma
Email*
Preferred Location
Numer telefonu*
Twój komentarz

Luxoft Warsaw - Warsaw Spire, plac Europejski 1, 00-844 Warszawa

Telefon kontaktowy:

+48 122110650
Dimitrie Pompeiu nr 5-7 , building C, Et. 5, sect 2, Bucharest, 014459

Telefon kontaktowy:

021 371 4858
Luxoft Poland Wroclaw - Silver Tower pl. Konstytucji 3-go Maja 3 50-048 Wroclaw

Telefon kontaktowy:

+48 122110650
Aleja Generała Tadeusza Bora-Komorowskiego 25, Quattro Business Park Five, 31-476 Kraków, Poland

Telefon kontaktowy:

+48 122110650
Success
Dziekujemy!
Twoje zgloszenie zostalo zarejestrowane.