Nowoczesna wielowątkowość w Javie
➡️ Czego się nauczysz?
Zrozumiesz i przećwiczysz wzorce oraz struktury wielowątkowe w Javie tak, aby nie sprawiały problemów w praktycznym zastosowaniu. Poznasz nowości w Javie, jakimi są lekkie wątki wraz z omówieniem pozytywów i ewentualnych problemów, jakie można napotkać w trakcie ich używania.
➡️ Dla kogo:
Materiał dedykowany programistom Javy, którzy chcą poznać i zrozumieć praktyczne aspekty wielowątkowości z uwzględnieniem nowości, jakie w ostatnim czasie zostały udostępnione w nowych edycjach języka Java.
➡️ Program:
1. Terminologia programowania wielowątkowego na przykładzie JVM:
– Programowanie współbieżne, wielowątkowe, asynchroniczne,
– Słowo kluczowe volatile – aspekty sprzętowe we współbieżności,
– Niebezpieczeństwa związane z wielowątkowymi procesami – wyścigi, deadlock, zagłodzenie, livelock,
– Sekcja krytyczna,
– Poprawne tworzenie typów Thread-Safe.
2. Tworzenie zadań wielowątkowych przy pomocy interfejsów funkcyjnych Runnable oraz Callable.
3. Omówienie dostępnych pól wątków w Javie – ExecutorService.
4. Kolekcje i strumienie wielowątkowe:
– Podstawowe kolekcje blokujące,
– Kolekcje skalowalne i automatycznie sortujące zawartość,
– Kolekcje kopiujące zawartość,
– Strumienie wielowątkowe,
– Zagrożenia płynące z naiwnego używania strumieni wielowątkowych.
5. Wykorzystanie istotnych elementów java.util.concurrent:
– Zastosowanie typów atomowych,
– Zoptymalizowane typy liczbowe: LongAccumulator, DoubleAccumulator,
– Semafor a licznik CountDownLatch,
– Bardziej zaawansowane struktury synchronizacyjne: CyclicBarrier, Phaser,
– Framework CompletableFuture.
6. Wirtualne wątki:
– Porównanie wątków fizycznych i wirtualnych,
– Potencjalne problemy w używaniu wirtualnych wątków,
– Structured Concurrency – nowe spojrzenie na programowanie asynchroniczne w Javie,
– Popularne frameworki a wirtualne wątki.
➡️ Informacje o prowadzącym:
Mateusz Kamiński
Absolwent informatyki Instytutu Informatyki na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej, obecnie Engineering Manager w Sages. Przez wiele lat prowadził zespoły programistyczne wytwarzające współczesne oprogramowanie, kładąc przy tym nacisk na jakość i elastyczność tworzonych rozwiązań. Od kilku lat lider zespołu technicznego Sages, który to w niedługim czasie z niewielkiego startupu rozwinął się w software house. Od początków kariery był mentorem w zespołach programistycznych, a aktualnie prowadzi dodatkowo zajęcia projektowe z programowania aplikacji na Politechnice Warszawskiej.
➡️ Uwagi nt. uzyskania certyfikatu
Jeśli zakupiłeś/aś wariant z nagraniem warsztatu, do swojego zakupu możesz otrzymać certyfikat potwierdzający znajomość materiału merytorycznego, do którego dostęp wykupiłeś/aś. Warunkiem uzyskania takiego dokumentu jest uzyskanie pozytywnego wyniku z quizu podsumowującego. Szczegóły dot. tego tematu znajdują się w panelu nagrania.
Dostęp do Quizu pojawi się wraz z publikacją nagrania.