Kod: JVA-070
Czas trwania: 12 godzin
Czas trwania: 12 godzin
Opis szkolenia
Podczas tego szkolenia omawiamy podstawy wielowątkowości API w języku Java. Przyglądamy się składni i klasom podstawowym oraz uczymy, jak uruchamiać kod w oddzielnym wątku, jak synchronizować dostęp do współdzielonych zasobów w środowisku wielowątkowym, jak używać monitora, zlecać wykonywanie wątków i nie tylko.To szkolenie jest pierwszą częścią naszego cyklu 3 kursów poświęconych wielowątkowości. Pozostałe dwa obejmują pakiet java.util.concurrent, programowanie asynchroniczne i Framework ForkJoin.
Plan szkolenia
Intro- Wielowątkowość i wieloprocesowość
- Podstawowe pojęcia - proces, wątek, harmonogram
- Równoległość i współbieżność
- Prawa Amdahla i Gustafsona
- Rodzaje wielowątkowości
- Aplikacja wielowątkowa w Javie
- Tworzenie wątków
- Wątek jako obiekt; tworzenie i uruchamianie wątku
- Wdrożenie Runnable
- Rozszerzanie klasy Thread
- Porównanie Runnable i Thread
- Korzystanie z ThreadFactory
- Cykl życia wątku
- Stany wątku
Przerywanie wątków
- Wracając z metody run
- Korzystanie z metody sleep
- Korzystanie z metody interrupt
- Metody isInterrupted i interrupted
- Korzystanie z metody stop
- Korzystanie z thread yeld
- Diagram stanów thread
Priorytety i demonologia
- Priorytety wątków
- Priorytety w systemie operacyjnym
- Wątki demonów
- Wątki infrastruktury
Synchronizacja - podstawy
- Synchronizacja czasu - sortowanie po czasie
- Problem z utraconą aktualizacją
- Sposoby synchronizacji wątków
- Koszty synchronizacji
- Synchronizuj słowo kluczowe
- Monitory
- Bloki synchronizacji
- Producent - wzór konsumenta
- Czekaj, powiadamiaj i wątkuj cykl życia
- Czekaj vs śpij
- Producent - Konsument wzór z rurami
Impas
- Co to jest impas?
- Przykłady impasów
Cele
- Poprawienie umiejętności programowania w języku Java
Grupa docelowa
- Młodsi i średniozaawansowani programiści Java