Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Warsztat Java #18 - Concurrency
4 students

Warsztat Java #18 - Concurrency

Java, Concurrency, Klasy Atomic, Parrallel Streams, Thread pools, Thread safety, Problemy wielowątkowości
Last updated 1/2025
Polish

What you'll learn

  • Zrozumienie koncepcji współbieżności i różnic między wątkami a procesami.
  • Poznanie zalet i wad współbieżności oraz różnic między współbieżnością a równoległym wykonaniem.
  • Umiejętność tworzenia i zarządzania wątkami w Javie.
  • Zrozumienie problemów związanych z wielowątkowością, takich jak race condition, deadlock, livelock i starvation.
  • Zapewnienie bezpieczeństwa wątków przy użyciu synchronized, lock, ThreadLocal i volatile.
  • Zrozumienie zasady HAPPENS BEFORE i jej znaczenia w zapewnieniu poprawnego działania wątków.
  • Zarządzanie pulami wątków i wykorzystywanie ExecutorService do efektywnego zarządzania zadaniami.
  • Tworzenie i przetwarzanie strumieni równoległych w Javie.
  • Umiejętność poprawnego kończenia strumieni równoległych.
  • Zastosowanie klas atomowych do zapewnienia bezpiecznego dostępu do zasobów współdzielonych.

Course content

1 section • 5 lectures • 41m total length
  • Powitanie1:32
  • #1 Concurrency0:34
  • Wykład o co chodzi w Concurency - omówienie materiałów cz. 128:24
  • Wykład o co chodzi w Concurency - omówienie materiałów cz. 210:56
  • Test - Concurrency0:04

Requirements

  • Podstawową znajomość języka Java.

Description

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Who this course is for:

  • Programistów Java: Junior i Mid-Level Developerów
  • Dla osób pracujących nad aplikacjami wymagającymi wydajności i równoległego przetwarzania danych.
  • Dla studentów kierunków informatycznych, którzy chcą zrozumieć zasady współbieżności i wielowątkowości.
  • Osób przygotowujących się do pracy w branży IT, pragnących zwiększyć swoje kompetencje w zakresie programowania współbieżnego.