Java Wielowątkowość Asynchroniczność Równoległość

Java Wielowątkowość Asynchroniczność Równoległość

Plan kursu

Wprowadzenie

  • Lekcja 1: Wprowadzenie
  • Lekcja 2: Wprowadzenie teoretyczne – Porównanie Współbieżności, Wielowątkowości, Równoległości oraz Asynchroniczności
  • Lekcja 3: Wprowadzenie teoretyczne – Proces i wątek

Wielowątkowość

  • Lekcja 4: Tworzenie wątków – Klasa Thread
  • Lekcja 5: Tworzenie wątków – Interfejs Runnable
  • Lekcja 6: Cykle życia wątku
  • Lekcja 7: Odpowiadamy na pytania teoretyczne do interview z poprzednich lekcji – część 1
  • Lekcja 7: Odpowiadamy na pytania teoretyczne do interview z poprzednich lekcji – część 2
  • Lekcja 8: Problemy wielowątkowości – wyścigi
  • Lekcja 9: Synchronizacja wątków
  • Lekcja 10: Problem widoczności zmiennych – słowo kluczowe volatile
  • Lekcja 11: Problem producenta i konsumenta – metody wait, notify, notifyAll
  • Lekcja 12: Inne problemy wielowątkowości – starvation, deadlock, livelock
  • Lekcja 13: Rozbudowana implementacja problemu producent-konsument
  • Lekcja 14: Odpowiadamy na pytania teoretyczne do interview
  • Lekcja 15: Synchronizacja z wykorzystaniem Lock
  • Lekcja 16: Ciekawe właściwości implementacji interfejsu Lock
  • Lekcja 17: Implementacja problemu producent-konsument z wykorzystaniem Lock oraz Condition
  • Lekcja 18: Poznajemy właściwości instancji typu ExecutorService
  • Lekcja 19: Poznajemy różne rodzaje instancji typu ExecutorService – część 1
  • Lekcja 20: Poznajemy różne rodzaje instancji typu ExecutorService – część 2
  • Lekcja 21: Poznajemy różne rodzaje instancji typu ExecutorService – część 3 + wprowadzenie Do ForkJoinPool
  • Lekcja 22: Praktyczny przykład wykorzystania ForkJoinPool z instancjami typu RecursiveTask
  • Lekcja 23: Wprowadzenie typów Callable oraz Future
  • Lekcja 24: Porównanie metod ExecutorService
  • Lekcja 25: ThreadFactory
  • Lekcja 26: Semaphore
  • Lekcja 27: Synchronizacja pracy wątków z wykorzystaniem CountDownLatch
  • Lekcja 28: Synchronizacja pracy wątków z wykorzystaniem CyclicBarrier
  • Lekcja 29: Synchronizacja pracy wątków z wykorzystaniem Phaser
  • Lekcja 30: Kontenery synchroniczne – ArrayBlockingQueue
  • Lekcja 31: Kontenery synchroniczne – wprowadzenie do PriorityBlockingQueue
  • Lekcja 32: Kontenery synchroniczne – sposoby ustalania priorytetu dla elementów PriorityBlockingQueue
  • Lekcja 33: Kontenery synchroniczne – kolejka LinkedBlockingQueue
  • Lekcja 34: Kontenery synchroniczne – kolejka ConcurrentLinkedQueue
  • Lekcja 35: Kontenery synchroniczne – kolejka LinkedTransferQueue oraz AtomicInteger – część 1
  • Lekcja 36: Kontenery synchroniczne – kolejka LinkedTransferQueue oraz AtomicInteger – część 2
  • Lekcja 37: Kontenery synchroniczne – implementacja problemu producent – konsument za pomocą kolejki LinkedTransferQueue
  • Lekcja 38: Kontenery synchroniczne – SynchronousQueue – część 1
  • Lekcja 39: Kontenery synchroniczne – SynchronousQueue – część 2
  • Lekcja 40: Kontenery synchroniczne – LinkedBlockingDeque
  • Lekcja 41: Kontenery synchroniczne – DelayQueue
  • Lekcja 42: Kontenery synchroniczne – podsumowanie + kolejka ConcurrentLinkedDeque
  • Lekcja 43: Kontenery synchroniczne – ConcurrentMap, ConsurrentHashMap, ConcurrentSkipListMap, ConcurrentSkipListSet
  • Lekcja 44: Kontenery synchroniczne – Przegląd metod klasy Collections do tworzenia kontenerów synchronicznych
  • Lekcja 45: Kontenery synchroniczne – CopyOnWriteArrayList

Asynchroniczność

  • Lekcja 46: Wprowadzenie do typu CompletableFuture
  • Lekcja 47: Podstawowe metody klasy CompletableFuture
  • Lekcja 48: Zarządzanie poziomami asynchroniczności w instancjach CompletableFuture
  • Lekcja 49: Obsługa błędów w zadaniach asynchronicznych przetwarzanych w CompletableFuture
  • Lekcja 50: Przegląd kolejnych metod klasy CompletableFuture
  • Lekcja 51: Przegląd kolejnych metod klasy CompletableFuture
  • Lekcja 52: Przegląd kolejnych metod ( runAfterEither, runAfterEitherAsync, resultNow )
  • Lekcja 53: Przegląd kolejnych metod ( thenAcceptBoth, thenAcceptBothAsync, thenCombine, thenCombineAsync, thenCompose, thenComposeAsync )
  • Lekcja 54: Przegląd kolejnych metod ( minimalCompletionStage, newIncompleteFuture, obtrudeException, whenComplete )

Równoległość

  • Lekcja 63: Programowanie równoległe, wprowadzenie do strumieni równoległych
  • Lekcja 64: Sposoby implementowania strumienia równoległego
  • Lekcja 65: Analizujemy średni czas wykonania operacji przez strumień równoległy
  • Lekcja 66: Analizujemy wydajność pracy strumieni równoległych
  • Lekcja 67: Porównanie działania metod parallel oraz parallelStream
  • Lekcja 68: Biblioteka Parallel Collectors

Virtual threads, structured concurrency

  • Lekcja 69: Wprowadzenie do virtual threads
  • Lekcja 70: Sposoby tworzenia virtual threads
  • Lekcja 71: Zasada działania virtual threads (carrier threads, pinned virtual threads)
  • Lekcja 72: Zarządzanie pamięcią w procesie życia virtual thread
  • Lekcja 73: Wprowadzenie mechanizmu structured concurrency
  • Lekcja 74: Implementacja mechanizmu structured concurrency w oparciu o typ StructuredTaskScope
  • Lekcja 75: Implementacja mechanizmu structured concurrency w oparciu o typ StructuredTaskScope.ShutdownOnFailure
  • Lekcja 76: Implementacja mechanizmu structured concurrency w oparciu o typ StructuredTaskScope.ShutdownOnSuccess
  • Lekcja 77: Implementacja własnej implementacji mechanizmu structured concurrency, rozszerzającego klasę StructuredTaskScope.
  • Lekcja 78: Implementacja mechanizmu structured concurrency do obsługi dużej ilości zadań
  • Lekcja 79: Wprowadzenie do scoped value
  • Lekcja 80: Wykorzystanie scoped value w przykładowym serwisie
  • Lekcja 81: Implementacja logiki wykorzystującej scoped value
  • Lekcja 82: Omówienie metod do pracy z instancją scoped value
  • Lekcja 83: Porównanie scoped value do thread local variable

Opinie

Brak wystawionych opinii
    Zamówienie

    Kategorie:

    od

    55.00

    PLN

    Zamów
    Copyright © 2025 KM PROGRAMS KRZYSZTOF MAKOWSKI. Szkolenia napędza platforma Publigo

    Polityka prywatności