×
Вы действительно хотите открыть доступ к тестированию по курсу Асинхронное программирование в Java на 40 дней?
ВИДЕОУРОК №5. Future API. Future vs CompletableFuture
По завершению урока слушатель ознакомится с понятием многопоточного программирования, разберёт понятие потоков, их состояния, научится создавать потоки и их использовать. Также познакомится с базовыми понятиями для работы с потоками, такими как мьютекс, монитор и семафор, научится использовать ключевое слово synchronized, а также использовать семафоры для одновременного доступа к ресурсам из нескольких потоков.
Данный урок является введением в асинхронное программирование на языке Java. На уроке вы ознакомитесь с концепцией асинхронного программирования, узнаете разницу между разными концепциями многопоточного программирования. А также научитесь создавать и запускать асинхронные задачи.
На этом уроке вы узнаете, как работать с группой потоков с помощью ThreadPool. Мы создадим свою реализацию пула потоков и разберём как происходит управление жизненным циклом потоков с помощью ExecutorService. В конце урока вы узнаете о таком фреймворке как Fork/Join, зачем он нужен и научитесь его применять на практике.
На этом уроке вы познакомитесь с набором коллекций, которые более эффективно работают в многопоточной среде, нежели стандартные универсальные коллекции из java.util пакета. Будут рассмотрены реализации часто используемых коллекций. В конце урока вы сможете ознакомиться с блокирующими очередями, которые используются для работы с пулами потоков.
На этом уроке вы более подробно познакомитесь с Future API. Напомним, что мы знаем об интерфейсе Future. Вы узнаете о новом классе для работы с асинхронными задачами CompletableFuture. Узнаете в чём разница между Future и CompletableFuture. Познакомитесь с некоторыми интерфейсами с пакета java.util.function, которые активно используются в CompletableFuture., а также научитесь создавать CompletableFuture.
На этом уроке вы более подробно познакомитесь с CompletableFuture. Поработаем с методами runAsync и supplyAsync. Разберём, что такое исключение в асинхронных задачах и как с ними работать. Также будет рассмотрена обработка исключений с помощью методов exceptionally и handle.
По завершению урока слушатель ознакомится с методами thenCombine и thenCompose, которые используются для комбинирования двух независимых и зависимых задач соответственно. Так же ознакомится с методами allOf и anyOf, которые используются для объединения более чем двух задач. А также увидит, как применять эти методы на практике.
По завершению урока слушатель ознакомится с асинхронностью в веб-приложениях на Spring. На уроке рассматривается зачем и когда использовать аннотацию Async, в чем разница между асинхронным и синхронным исполнением в веб-приложении, а также как строить свои веб-приложения с использованием асинхронности.
По завершению урока слушатель ознакомится с SceduleExecutorService и научится создавать отложенные задачи с его помощью. Также изучит как использовать отложенный запуск методов в фреймворке Spring. Научится кастомизировать стандартный TaskScheduler, а также детально контролировать регистрацию задач через ScheduledTaskRegistrar.
По завершению урока слушатель ознакомится с такими паттернами проектирования как Producer Consumer и Scatter-Gather. Будет понимать, как работают различные инструменты, в основе которых лежат данные паттерны. Также ознакомится на практике с реализациями этих паттернов и сможет применять их в проектировании собственных многопоточных приложений.