Adresaci szkolenia:

Szkolenie adresowane jest do programistów Java, pragnących poznać zagadnienia z zakresu tworzenia aplikacji wielowątkowych.

Cel szkolenia:

Celem szkolenia jest zapoznanie uczestników z teoretycznymi oraz praktycznymi zagadnieniami programowania wielowątkowego w języku Java. Na szkoleniu przedstawione zostaną ogólne koncepcje związane z przetwarzaniem współbieżnym i wybrane zagadnienia teoretyczne, takie jak modele szeregowania, zagłodzenie, zakleszczenie i jego rozwiązywanie, wykluczanie w dostępie oraz jego brak, wzorce projektowe związane ze współbieżnością bądź metody poprawy wydajności programów wielowątkowych. Następnie omówiona i przećwiczona zostanie funkcjonalność i mechanizmy dostępne w J2SE służące do tworzenia programów współbieżnych z wyszczególnieniem na wersje platformy Java, w której zostały opublikowane: Java 7, Java 5 i poprzedzające: kolekcje danych, realizacje wzroców współbieżności, metody wykluczania i synchronizowania, współbieżność w GUI i klasy do implementowania współbieżnych algorytmów „ dziel i rządź ” .

Słuchacze szkolenia napoktają w trakcie warsztatów na różnorodne problemy i pułapki pojawiające się przy tworzeniu aplikacji wielowątkowych, a przygotowany materiał i przebieg ćwiczeń pozwoli je zidentyfikować i ich uniknąć w przyszłości.

Mocne strony szkolenia:

Słuchacze będą samodzielnie implementować w trakcie szkolenia realizacje wzorców programowania współbieżnego, porównać je z rozwiązaniami dostarczanymi przez platformę Java a następnie zastosować te ostatnie w tworzeniu algorytmów współbieżnych. Dzięki temu szkolenie pozwala zrozumieć koncepcje leżące u podstaw biblioteki java.util.concurrent, a wiedza o programowaniu wielowątkowym zostanie zbudowana „ od podstaw ” . Zdobyta wiedza będzie przydatna w tworzeniu aplikacji wielowątkowych w znacznej mierze niezależnie od języka programowania. Program szkolenia w dużej mierze zorientowany jest na reprodukowanie różnych błędów aplikacji współbieżnych w celu ich zrozumienia.

Wymagania:

Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java (do poznania na kursie J/JP).

Parametry szkolenia:

5*8 godzin (5*7 godzin netto) wykładów i warsztatów (z wyraźną przewagą warsztatów).

Program szkolenia

  1. Wprowadzenie do wielowątkowości
    1. Przetwarzanie współbieżne, równoległe a szeregowe
    2. Wywłaszczanie i jego brak
    3. Wątek a proces
    4. Modele realizacji wielowątkowości
    5. Priorytet wątku w Javie i w Systemie Operacyjnym
    6. Komunikacja między procesami a komunikacja między wątkami
    7. Semafor, Mutex
  2. Wielowątkowość w Java, mechanizmy niskopoziomowe i inne zagadnienia
    1. Kontrola cyklu życia wątku
    2. Parametry wątków
    3. Grupowanie wątków
    4. Obsługa wyjątków w wątkach
    5. Monitor, „ synchronized ” oraz wait/notify
    6. Thread Local storage
    7. Timer
    8. Startowanie nowych procesów
    9. Wątki w Swing i AWT
    10. Concurrent Mark-Sweep GC
    11. Bariery pamięci i model pamięci Java
    12. volatile, final, lazySet i CAS
  3. Problemy w programowaniu wielowątkowym
    1. Przykładowe struktury programu wielowątkowego
    2. Wyścig, operacje atomowe
    3. Zakleszczenie i Livelock
    4. Zagłodzenie i Priority Inversion
    5. Algorytm Dekkera
  4. Wzorce projektowe dla programów wielowątkowych
    1. Wzorce synchronizacji
    2. Wzorce współbieżności
    3. Wzorce inicjalizacji
    4. Wzorce obsługi zdarzeń
  5. Omówienie nowości związanych ze współbieżnością (Java 7,8,9)
    1. Klasy zmiennych atomowych i operacje atomowe
    2. Interfejsy blokad – Lock, ReadWriteLock
    3. Condition
    4. Kolejki blokujące – BlockingQueue
    5. Kolekcje bezpieczne wątkowo
    6. Synchronizatory
    7. Zadania i Future
    8. Współbieżne wykonywanie zadań
    9. Fork-join
  6. Optymalizacja rozwiązań współbieżnych
    1. Źródła spadku wydajności we współbieżności.
    2. Redukcja rywalizacji o blokadę
    3. Prawo Amdahla

Pytania?

* Wymagane.
** Szczegóły promocji w Regulaminie.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email