Асинхронное программирование на Java
ITVDN: курсы программирования
Видеокурсы по
программированию

    Заказать звонок

    Выбери свою IT специальность

    Подписка

    Заказать звонок

    +38 099 757 27 82

      Асинхронное программирование на Java

      О курсе

      Асинхронность - это способ написания программы или ее части так, чтобы последовательное, шаг за шагом, выполнение программных задач не блокировало начало выполнения новых задач. При такой парадигме программа может начать выполнение следующей задачи, пока предыдущая еще выполняется. Это делает программу более эффективной, способной быстро и своевременно реагировать на запросы.

      Этот курс позволит вам сформировать необходимую базу знаний и практических навыков для успешной работы с асинхронным кодом.

      Курс "Асинхронное программирование в Java" начинается с обзора особенностей многопоточного программирования. Вы ознакомитесь с работой потоков, их состоянием, научитесь создавать и использовать их. Также вы ознакомитесь с основными идеями о работе с потоками и механизмами, такими как мьютэкс, монитор и семафор.

      На втором уроке вы узнаете о наборе специализированных коллекций, которые оптимальнее и надежнее работают в многопоточной среде, чем стандартные универсальные коллекции из пакета java.util.

      Вы рассмотрите основы асинхронного программирования в языке Java. Также ознакомитесь с концепцией асинхронного программирования, определите разницу между ним и другими подходами к многопоточному программированию, и научитесь создавать и запускать асинхронные задачи. Вы сможете понять, как работать с группой потоков с помощью ThreadPool, построите собственную реализацию пула потоков и рассмотрите, как управлять жизненным циклом потоков с помощью ExecutorService.

      Далее мы подробно рассмотрим Future API, изучим различия между Future и CompletableFuture, а также ознакомимся с некоторыми интерфейсами из пакета java.util.function, которые широко используются в CompletableFuture. Вы научитесь создавать CompletableFuture, а также использовать методы runAsync и supplyAsync и методы thenCombine, и thenCompose, которые применяются для объединения двух задач. Кроме того, мы подробно рассмотрим методы allOf и anyOf, которые позволяют объединять более чем две задачи, и рассмотрим их практическое использование.

      Продолжая курс, мы рассмотрим важные аспекты использования асинхронности в веб-приложениях, которые построены на Spring. Мы подробно проанализируем, в каких случаях и для каких задач следует использовать аннотацию @Async и интерфейс AsyncConfigurer. Также мы рассмотрим различия между асинхронным и синхронным выполнением в веб-приложениях и опишем практические шаги по построению веб-приложений с использованием асинхронности.

      Вы познакомитесь с ScheduleExecutorService и научитесь создавать отложенные задачи с его помощью. Мы также исследуем, как использовать отложенный запуск методов во фреймворке Spring, ознакомимся с обработкой асинхронных ошибок в Spring framework.  Мы подробно рассмотрим проблемы с тестированием асинхронного кода и познакомимся с готовым решением: библиотекой Awaitility - разберем ее ключевые методы (await, unit, atLeast, atMost, pollInterval) и рассмотрим практические примеры написания юнит тестов для тестирования асинхронного кода.

      На последнем уроке мы рассмотрим важные паттерны проектирования - Producer-Consumer и Scatter-Gather. Вы разберетесь в том, как эти паттерны работают, и узнаете о различных инструментах, основанных на них. Кроме теоретического аспекта, вы также увидите практические реализации этих паттернов, что позволит вам эффективно использовать их в проектировании своих многопоточных приложений.

      Читать дальше...

      Предварительные Требования

      Данный курс адресован профессионалам в области разработки, которые уже имеют опыт в программировании на Java, но желают углубить свои знания в области многопоточности и асинхронности. Также курс будет полезен студентам, последовательно изучающим этот язык программирования и уже освоившим его на уровне Java Professional.

      Читать дальше...

      Вы научитесь

      Создавать и запускать потоки.

      Работать с потокобезопасными коллекциями.

      Использовать ExecutorService и ThreadPool для управления потоками.

      Использовать Fork/Join Framework для решения проблемы с использованием параллельного подхода "разделяй и властвуй".

      Использовать Future и CompletableFuture для работы с асинхронными задачами.

      Ловить и обрабатывать исключения, полученные при выполнении асинхронного кода.

      Использовать асинхронность в веб-приложениях на Spring Framework.

      Управлять выполнением задач, создавая пользовательский планировщик задач.

      Тестировать асинхронный код с помощью библиотеки Awaitility.

      Реализовать паттерны проектирования Producer Consumer и Scatter-Gather.

      Читать дальше...
      Скачать материалы курса Для получения материалов курса нужно авторизоваться
      Получить сертификат Для получения сертификата нужно авторизоваться
      • Длительность: 2 ч 36 м
      • Статус: в записи
      • Уроков: 4
      • Уроков: 4 из 12
      • Язык: украинский

      Что входит в курс

      • 4 видео уроков
      Войдите или зарегестрируйтесь для того чтоб продолжить просмотр бесплатного видео

      После завершения этого модуля участники получат понимание концепции многопоточного программирования, ознакомятся с работой потоков, их состоянием и научатся создавать и использовать их. Также будут ознакомлены с основными идеями по работе с потоками, такими как мьютэкс, монитор и семафор, и научатся использовать ключевое слово synchronized, а также семафоры для обеспечения одновременного доступа к ресурсам из нескольких потоков

      Читать дальше...

      Во время этого модуля вы узнаете о наборе коллекций, которые оптимальнее и надежнее работают в многопоточной среде, чем стандартные универсальные коллекции из пакета java.util. Будет рассмотрена реализация часто применяемых коллекций. В завершение модуля вы сможете освоить блокирующие очереди, используемые для взаимодействия с пулами потоков.

      Читать дальше...

      На этом уроке будут рассмотрены основы асинхронного программирования с использованием языка Java. В процессе занятия вы ознакомитесь с концепцией асинхронного программирования, определите разницу между ним и другими подходами к многопоточному программированию, и научитесь создавать и запускать асинхронные задачи.

      Читать дальше...

      На этом занятии будет рассмотрена работа с группой потоков с помощью ThreadPool. Мы построим собственную реализацию пула потоков и рассмотрим, как управляется жизненным циклом потоков с помощью ExecutorService. В конце занятия вы познаете особенности такого фреймворка, как Fork/Join, и поймете, зачем он нужен, а также научитесь его использовать на практике.

      Читать дальше...
      ПОКАЗАТЬ ВСЕ

      Покупай подпискус доступом ко всем курсам и сервисам

      Библиотека современных IT знаний в удобном формате

      Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.

      Стартовый
      • Все видеокурсы на 3 месяца
      • Тестирование по 10 курсам
      • Проверка 5 домашних заданий
      • Консультация с тренером 30 мин
      59.99 $
      Оформить подписку
      Премиум Plus
      Загружай видео уроки
      и учись без интернета
      • Все видеокурсы на 1 год
      • Тестирование по 24 курсам
      • Проверка 20 домашних заданий
      • Консультация с тренером 120 мин
      • Скачивание видео уроков
      199.99 $
      Оформить подписку
      Базовый
      • Все видеокурсы на 1 год
      • Тестирование по 16 курсам
      • Проверка 10 домашних заданий
      • Консультация с тренером 60 мин
      89.99 $
      Оформить подписку
      комментарии и обсуждения
      Notification success
      Мы используем cookie-файлы, чтобы сделать взаимодействие с нашими веб-сайтами и услугами простым и значимым.