
Czy wiesz, że Java potrafi wykonywać kilka czynności jednocześnie? W tym kursie dowiesz się, jak sprawić, by Java działała w trybie współbieżnym, oraz poznasz związane z tym problemy i wyzwania. Kurs jest mocno teoretyczny i wszystkie materiały zostały opracowane w formie tekstowej.
Tematyka Warsztatu
Concurrency: Wprowadzenie
O co w tym chodzi? Wprowadzenie do współbieżności i jej znaczenie.
Czym jest wątek i czym jest proces? Różnice między wątkami a procesami.
Zalety współbieżności: Korzyści płynące z użycia współbieżności.
Wady współbieżności: Problemy i ograniczenia związane z współbieżnością.
Concurrency vs Parallel Execution: Różnice między współbieżnością a równoległym wykonaniem.
Tworzenie i Zarządzanie Wątkami
Tworzymy własne wątki: Metody tworzenia wątków w Javie.
Problemy wielowątkowości: Najczęstsze problemy i jak sobie z nimi radzić.
Java a zarządzanie pamięcią: Jak Java zarządza pamięcią w kontekście wielowątkowości.
Race condition: Jak uniknąć konfliktów (synchronized, lock, ThreadLocal).
Deadlock: Jak rozpoznać i unikać zakleszczeń.
Livelock: Jak rozpoznać i unikać żywiołowych zakleszczeń.
Starvation: Jak zapobiegać głodzeniu wątków.
Słówko volatile: Znaczenie i zastosowanie słowa kluczowego volatile.
Gwarancja HAPPENS BEFORE: Zasady gwarancji porządku zdarzeń w Javie.
Thread Safety i Narzędzia
Thread safety w gotowych narzędziach: Jak zapewnić bezpieczeństwo wątków w narzędziach.
Thread safety w Java API: Bezpieczeństwo wątków w standardowych klasach Java.
Thread safety w Hibernate: Jak zapewnić bezpieczeństwo wątków w Hibernate.
Thread Pools i ExecutorService
Thread pools: Zarządzanie pulami wątków.
ExecutorService: Wykorzystanie ExecutorService do zarządzania wątkami.
Interfejs Runnable: Tworzenie i uruchamianie zadań przy użyciu Runnable.
Interfejs Callable: Tworzenie i uruchamianie zadań przy użyciu Callable.
Parallel Streams
Tworzenie parallel streams: Jak tworzyć strumienie równoległe.
Procesowanie parallel streams: Przetwarzanie danych za pomocą strumieni równoległych.
Kończenie parallel streams: Jak poprawnie zakończyć przetwarzanie strumieni równoległych.
Klasy Atomic
Co to i po co to? Zastosowanie i korzyści z użycia klas atomowych.
Warsztat ten jest 18. warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.