Programowanie wielowątkowe w języku Java
Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
Program szkolenia
- Wprowadzenie do programowania wielowątkowego
- Przykłady programów wykonywany liniowo
- Przykłady programów wykonywanych wielowątkowo
- Przykłady programów wykonywanych równolegle
- Wielowątkowość w Javie
- Definicja wątku
- Klasa Thread
- Interfejs Runnable
- Wyrażenie lambda
- Parametry wątków
- Nazwa
- Priorytet
- Stan
- Grupa
- Cykl życia wątków
- Stan NEW
- Stan RUNNABLE
- Stan WAITING
- Stan TIME_WAITING
- Stan BLOCKED
- Stan TERMINATED
- Współpraca między wątkami
- Praca równoległa
- Synchronizacja
- Wywłaszczanie
- Blokowanie
- Współdzielenie pamięci
- Definicja wątku
- Proces
- Proces a wątek
- Komunikacja między procesami
- Przegląd rozwiązań JEE
- Niskopoziomowe API procesów w Javie
- Koordynacja wątków
- Istotne metody koordynacji wątków
- start
- run
- sleep
- wait i time_wait
- join
- interrupt
- notify i notifyAll
- Sekcja krytyczna
- Synchronizacja wątków
- Blokowanie wątków
- Dobre praktyki
- Zagrożenia wynikające z wielowątkowości
- Ograniczenia cyklu życia
- deprecated w Thread
- Livelock
- Brak atomowości
- Zagrożenia blokowania wątków
- Monitory
- Hazard
- Starvation
- Deadlock
- Monitorowanie pracy wątków za pomocą narzędzia jConsole
- Istotne metody koordynacji wątków
- Zadania
- Wykonywanie zadań
- Omówienie interfejsów
- Callable
- Future
- Delayed
- Pule wątków
- Klasa Executor
- Klasa Executors
- Klasa ExecutorService
- Klasa ThreadPoolExecutor
- Klasa ScheduledThreadPoolExecutor
- Kolekcja w programowaniu wielowątkowym
- Cechy kolekcji wielowątkowych
- Kolekcje współbieżne i blokujące
- BlockingQueue
- LinkedBlokingQueue
- SynchronizedMap
- SynchronizedList
- Operacje atomowe
- Definicja atomowości
- Problemy wynikające z braku atomowości
- Unikanie problemów wynikających z braku atomowości
- Stałe
- Dane lokalne
- Bariery pamięci
- Stałe
- Synchronizacja
- Volatile
- lazySet
- CAS
- Klasy atomowe
- Operacje CAS w API
- ava.util.concurrent.atomic
- java.lang.invoke
- Zaawansowana koordynacja wątków
- Definicja i zastosowania monitora - Monitor
- Definicja i zastosowania blokady - Lock
- Zastosowania blokad w koordynacji wątków
- Implementacje klas blokujących
- Inne klasy blokujące
- Semaphore
- CountDownLatch
- CyclicBarrier
- Phaser
- Exchanger
- SynchronousQueue
- Asynchroniczna praca z operacjami I/O
- Asynchroniczna praca z plikami
- Asynchroniczna praca z TCP/IP
- Wzorce implementacji rozwiązań wielowątkowych
- Wzorce blokowania
- Wzorce współpracy
- Wzorce zarządzania wątkami
- Wzorce obsługi zdarzeń
- Wzorce wywołań asynchronicznych
- Wzorce inicjalizacji
- Przetwarzanie równoległe
- Przykłady algorytmów rekurencyjnych
- Metody zrównoleglenia algorytmów rekurencyjnych
- Wielowątkowość w GUI
- Wielowątkowość w JavaFX
- Klasa Task
- Klasa Service
- Problemy wynikające z wielowątkowości w GUI
- Dobre praktyki
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!Szkolenie przeznaczone dla programistów języka Java, którzy chcą rozszerzyć swoje kompetencje w kierunku implementacji rozwiązań wielowątkowych lub obliczeń równoległych. Szkolenie wprowadza od podstaw kluczowe aspekty programowania współbieżnego wykorzystując w tym celu gotowe bliblioteki oraz implementacje własnych niskopoziomowych rozwiązań.
Niezależnie czy dopiero rozpoczynasz z aplikacjami wielowątkowymi czy projektowałeś już wcześniej tego typu rozwiązania, na pewno szkolenie dostarczy Ci wiele przydatnej wiedzy popartej praktycznymi przykładami.
Stanowisko robocze
Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia
Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Java
Jestem programistą z ponad 15-letnim doświadczeniem. W trakcie swojej kariery kilka razy zmieniałem obszary, z którymi miałem do czynienia (poczynając od niskopoziomowego programowania w C, poprzez fullstackowe zabawy w RubyOnRails, aż do prawdziwego backendu w Javie). Odkąd pamiętam, zawsze lubiłem dzielić się wiedzą z innymi i sprawiało to satysfakcję obu stronom tego procesu. Dlatego naturalną konsekwencją było to, iż zostałem kilka lat temu profesjonalnym trenerem IT.
Prowadzenie szkoleń pozwala mi również na każdorazowe powtórzenie i ugruntowanie swojej wiedzy, co potem bardzo przydaje się w pracy projektowej. Natomiast to, co daje mi największe zadowolenie jako trenerowi, to sytuacja gdy uczeń przerośnie mistrza - wtedy wiem, że dałem z siebie wszystko, a moja praca przyniosła owoce.