Wielowątkowość w Javie

Tytuł: Wielowątkowość w Javie
Kod: Java-wat
Kategoria: Java i JVM
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 5 dni
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie adresowane jest do programistów Java, aplikacji wielowątkowych. Celem szkolenia jest dokładne poznanie API Java w zakresie wielowątkowości i nabycie umiejętności posługiwania się nim.

Od podstaw współpracy między wątkami, poprzez zaawansowane operacje typu CAS, na dokładnym przećwiczeniu biblioteki java.util.concurent skończywszy. Także z uwzględnieniem wpływu systemów operacyjnych, czy optymalizacji Java, a nawet samych procesorów - związanych z tym problemów programowania wielowątkowego i sposobów ich rozwiązywania.

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Wprowadzenie do wielowątkowości
    1. Czym jest wielowątkowość
    2. Szeregowanie wątków
    3. Współpraca między wątkami
  2. Procesy w Javie
    1. Procesy a wątki
    2. Niskopoziomowe API procesów w Javie
    3. Przegląd rozwiązań wyższego poziomu w Java (logika zdalna)
  3. Wątki w Javie
    1. Tworzenie wątków w Javie
    2. Parametry wątków
    3. Wyjątki w wątkach
    4. Wątki wirtualne
    5. Podstawowa współpraca między wątkami
    6. Zagrożenia w aplikacjach wielowątkowych
    7. Narzędzia monitorowania pracy wątków
  4. Zadania schedulowane i pule wątków
    1. Stare API schedulingu
    2. Różne typy zadań - czyli nie tylko Runnable
    3. Wykonawca zadań
    4. Pule wątków
    5. Kolejki zadań - przegląd kolejek blokujących
    6. Scheduling w pulach wątków
    7. Pule wątków a konsumpcja wyników
    8. Fork-Join API
    9. Flow - programowanie reaktywne
    10. "Promises" w Javie
  5. GUI a wielowątkowość w Javie
    1. Problemy wielowątkowości w GUI
    2. Rozwiązania AWT - EventQueue
    3. Rozwiązania SWING
    4. Kończenie pracy
  6. Operacje atomowe w Javie
    1. Czym jest atomowość?
    2. Problemy braku atomowości
    3. Unikanie problemu
    4. Gwarantowana atomowość w Javie
    5. Bariery pamięci - opis i rodzaje
    6. Wymuszanie barier pamięci
    7. CAS w API Javy (java.util.concurrent.atomic i java.lang.invoke)
    8. Spinlock - pętle CAS jako alternatywa synchronizacji
  7. Zaawansowana współpraca między wątkami
    1. Monitor a Lock (java.util.concurrent.locks)
    2. Gotowe realizacje Lock
    3. Współpraca między wątkami na Lock
    4. Condition jako alternatywa wait-notify
    5. Tworzenie własnych klas blokad
    6. Inne implementacje blokad (java.util.concurrent)
  8. Kolekcje a wielowątkowość w Javie
    1. "Stare" kolekcje Java a wielowątkowość
    2. Collections API a wielowątkowość
    3. Kolekcje wielowątkowe java.util.concurrent
    4. Kolekcje blokujące
    5. Kolekcje kopiujące przy zapisie
    6. Kolekcje współbieżne
    7. Podsumowanie ze względu na interfejsy kolekcji
    8. Porównanie wydajności java.util.concurrent z Collecions API
  9. Grabage Collector a wielowątkowość
    1. Stop The World
    2. Model Pamięci
    3. Różne rodzaje Garbage Collector a wielowątkowość
    4. Różne rodzaje Garbage Collector a obszary pamięci
    5. Wybór Garbage Collector
    6. Wskazówki doboru Garbage Collector (GC)
  10. Asynchroniczne IO
    1. Asynchroniczna praca na plikach
    2. Asynchroniczna praca na gniazdkach
    3. CompletableFuture w java.net.http (wprowadzenie)
  11. Wzorce wielowątkowości a rozwiązania w Javie
    1. Wzorce blokowania
    2. Wzorce współpracy
    3. Wzorce zarządzania wątkami
    4. Wzorce obsługi zdarzeń
    5. Wzorce wywołań asynchronicznych
    6. Wzorce inicjalizacji
  12. Wydajność aplikacji wielowątkowych w Javie
    1. Współpraca zamiast odpytywania
    2. Ograniczanie blokowania
    3. Fork-Join granica opłacalności
    4. Prawo Amdahla - czyli ograniczenia zrównoleglenia
    5. Kontrola ilości wątków - pule wątków
    6. Tuning Javy dla wątków


Pobierz program w formacie PDF

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.