Zaufali Nam

  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam
  • Zaufali Nam

Kod Szkolenia: J/MT

Tytuł Szkolenia: Programowanie aplikacji wielowątkowych w języku Java

Karta Szkolenia

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.

Wymagania:

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

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.

Parametry szkolenia:

5*7 godzin wykładów i warsztatów w proporcji 1/3.

Wielkość grupy: maks. 8-10 osób.

Polecane szkolenia poprzedzające:

J/JP

Szczegółowy Program

  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. Biblioteka współbieżności w Java 5
    1. Klasy zmiennych atomowych i operacje atomowe w Java 5
    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ń
  6. Omówienie nowych zagadnień w Java 7 związanych ze współbieżnością
  7. 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