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

300+ курсов по популярным IT-направлениям

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

Подписка
Подписка

300+ курсов по популярным IT-направлениям

Асинхронное программирование на 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.

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

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

  • 12 видео уроков
  • Домашние задания
  • Тестирование
  • Сертификат

×

Вы открыли доступ к тесту! Пройти тест

Вы действительно хотите открыть доступ к тестированию по курсу Асинхронное программирование на Java на 40 дней?

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

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

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

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

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

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

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

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

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

В этом занятии мы подробно рассмотрим Future API, обращая внимание на нововведение в виде класса для работы с асинхронными задачами - Experienced Future. Мы изучим различия между Future и CompletableFuture, а также ознакомимся с некоторыми интерфейсами из пакета java.util.function, которые широко используются в CompletableFuture, и научимся создавать CompletableFuture.

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

В этом уроке мы тщательно изучим CompletableFuture, сосредоточившись на методах runAsync и supplyAsync. Мы проанализируем, что означает исключение в контексте асинхронных задач и как с ними работать. Кроме того, мы познакомимся с методами exceptionally и handle для обработки исключительных ситуаций.

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

В этом уроке будут рассмотрены методы thenCombine и thenCompose, которые применяются для объединения двух задач, которые могут быть независимыми или зависимыми друг от друга соответственно. Кроме того, мы подробно изучим методы allOf и anyOf, которые позволяют объединять более чем две задачи, и рассмотрим их практическое использование.

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

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

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

В этом модуле мы подробно познакомим вас с ScheduleExecutorService и научим, как создавать отложенные задачи с его помощью. Мы также изучим, как использовать отложенный запуск методов во фреймворке Spring. Вы узнаете, как кастомизировать стандартный TaskScheduler и как подробно контролировать регистрацию задач через ScheduledTaskRegistrar и еще ознакомитесь с довольно интересным интерфейсом SchedulingConfigurer

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

В этом модуле мы ознакомимся с обработкой асинхронных ошибок в Spring framework. Выясним, что такое асинхронные ошибки и разберем, как обрабатывать ошибки в асинхронных и запланированных задачах. И в конце вместе создадим простенький Spring web-application с обработкой асинхронных ошибок.

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

В этом уроке мы разберем проблемы с тестированием асинхронного кода и подробно познакомимся с готовым решением: библиотекой Awaitility. Мы разберем ее ключевые методы: await, unit, atLeast, atMost, pollInterval. И рассмотрим практические примеры написания юнит тестов для тестирования асинхронного кода.

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

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

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

Отзывы наших студентов

DOU

Отзывы в DOU

4,9/5 - 200 отзывов

Володимир Бурцев
Володимир Бурцев
5/5
Я вже не новачок у розробці. Проте вивчав Java, а працювати почав на іншій мові. Багато чого важливого і навіть базового позабував, а тут за допомогою ретельного проходження по всім пунктам і аспектам згадую все що потрібно і не висмикуючи з контексту, а послідовно щоби нічого не пропустити. Тут дуже багато окремих гілок за обраним напрямком. Був би час 🙂 PS записи трошки вкрилось пилом і часто зустрічаю помилки/обмовки, але в цілому на якість це не впливає. РАДЖУ!
Почитать оригинал
Facebook

Отзывы в Facebook

5,0/5 - 707 отзывов

Маис Расулов
Маис Расулов
5/5
Отличный курс, советую всем
Почитать оригинал
Google

Отзывы в Google

4,9/5 - 836 отзывов

Юрий Казимирко
Юрий Казимирко
5/5
Прошел курс C# 8.0 СТАРТОВЫЙ. Курс классный! Преподаватель этого курса Александр Шевчук. У него классная чёткая подача учебного материала. Понравилась учебная платформа (сайт) ITVDN, она удобная.
Почитать оригинал

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

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

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

Стартовый
  • Все видеокурсы на 3 месяца
  • Тестирование по 10 курсам
  • Проверка 5 домашних заданий
  • Консультация с тренером 30 мин
59.99 $
Оформить подписку
Премиум Plus
  • Все видеокурсы на 1 год
  • Тестирование по 24 курсам
  • Проверка 20 домашних заданий
  • Консультация с тренером 120 мин
  • Скачивание видео уроков
149.99 $
199.99 $
Оформить подписку
Акция
Базовый
  • Все видеокурсы на 6 месяцев
  • Тестирование по 16 курсам
  • Проверка 10 домашних заданий
  • Консультация с тренером 60 мин
89.99 $
Оформить подписку

Вопросы и ответы

В чём преимущество онлайн курсов программирования по сравнению с оффлайн?
Какова стоимость обучения?
Сколько времени понадобится, чтобы овладеть программированием?
Сколько времени понадобится, чтобы овладеть IT-специальностью?
С какого курса начинать обучение?
Как управлять своим временем и организовать эффективное онлайн-обучение с тренером?
Есть ли у вас помощь с трудоустройством после окончания обучения?
Возможно ли персональное обучение с тренером ITVDN?
С какого возраста можно учиться на платформе?
Нужны ли знания английского языка для обучения?
Какого уровня можно достичь, пройдя обучение по специальности?
Когда закончится подписка, что дальше? Доступа к урокам не будет?
Суммируются ли скидки на покупку подписки?
В чём преимущество онлайн курсов программирования по сравнению с оффлайн?

Онлайн курсы имеют ряд преимуществ перед оффлайн форматом:

  1. Независимость от локации. Онлайн позволяет учиться где угодно.
  2. Сохранение денег и времени на дорогу. Вы экономите время и деньги с поездок на курсы и обратно.
  3. Онлайн курсы дешевле. Нет нужды в помещении и ноутбуках для студентов, поэтому стоимость ниже.
  4. Удобный темп обучения, постоянный доступ к информации. Обучение в вашем темпе в любом месте 24/7. Также есть доступ к записанным урокам, чего нет в оффлайн формате.
Какова стоимость обучения?

На ITVDN есть 2 формата обучения: Live Online и видео курсы. Цена обучения зависит от выбранного вами способа обучения.

Если вы хотите учиться самостоятельно в формате видео курсов, стоимость обучения составит в среднем 10-15 USD в месяц в зависимости от выбранного вами пакета подписки.

Live Online – это онлайн обучение с тренером в группах вместе с другими студентами. Учеба в данном формате стоит в среднем 6-7 USD за один час.

Сколько времени понадобится, чтобы овладеть программированием?

Зависит от того, сколько внимания программированию вы будете выделять ежедневно, какой именно это язык и какой у вас опыт кодинга. Среднее время на овладение одним языком при условии регулярных занятий хотя бы 2 часа в день:

  • новички – от 3 до 6 месяцев;
  • те, кто имеет базовые знания другого языка – от 1 до 3 месяцев;
  • профессиональные программисты – до 1 месяца.

Самый лучший вариант инвестиции времени – 8 часов ежедневно (20% теории + 80% практики). Больше практики – быстрее овладеете программированием.

Сколько времени понадобится, чтобы овладеть IT-специальностью?

Для овладения IT-специальностью нужно выделить не менее 500 часов, из которых около 100 часов – на просмотр видео уроков или посещение онлайн занятий с ментором, а 400 – на выполнение практических заданий по пройденным темам.

В зависимости от того, сколько времени вы готовы выделять на обучение в день, вы сможете пройти программу за 3-8 месяцев. Если у вас есть определенная база знаний по IT, количество необходимого времени будет меньшим.

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

С какого курса начинать обучение?

Начинать следует с тех, которые содержат в названии слово “Стартовый”. Такие курсы имеют вводный материал для знакомства с языком или технологией.

Если вы планируете учиться по конкретной специальности в формате видео курсов, перейдите на страницу специальности и прокрутите до заголовка “Видео курсы по специальности …”. Ниже будет список видео курсов, отсортированных в порядке необходимости изучения.

Ещё ниже вы найдете Roadmap по специальности – путеводитель, на котором изображены видео курсы в виде дерева, что также легко сориентирует вас в последовательности прохождения курсов.

Как управлять своим временем и организовать эффективное онлайн-обучение с тренером?

Если вы выбираете Live Online обучение с тренером, всё очень просто:

  • посещайте все занятия, вовремя выполняйте д/з;
  • дополнительно смотрите видео уроки на ITVDN;
  • после каждого урока проходите краткое тестирование;
  • практикуйтесь в Интерактивном практикуме;
  • общайтесь с одногруппниками в ходе решения д/з, задавайте вопросы ментору на уроках и вне их;
  • в конце каждого курса сдавайте экзамен на TestProvider (и получайте Сертификаты);
  • в конце всего обучения проходите экзамен по специальности и получите диплом.
Есть ли у вас помощь с трудоустройством после окончания обучения?

Мы имеем специальный раздел – “Вакансии”, который помогает нашим студентам искать первую работу в IT. Детальнее о возможностях и о разделе по ссылке.

А для тех, кто учится онлайн с ментором, у нас дополнительно предусмотрена индивидуальная помощь HR-специалиста по подготовке к трудоустройству с первого дня обучения и до получения первого job-оффера. Она включает в себя помощь в оформлении соцсетей, подготовке резюме, проведении пробного собеседования, предоставлении советов по поиску работы и самопрезентации и т. д.

Возможно ли персональное обучение с тренером ITVDN?

К сожалению, данная услуга ITVDN не предусмотрена, однако вы можете заказать индивидуальную консультацию с нашим ментором. Подробности вы найдете по ссылке.

С какого возраста можно учиться на платформе?

На ITVDN отсутствуют курсы для детей, поэтому комфортный возраст для начала обучения по нашим материалам – от 14 лет.

Нужны ли знания английского языка для обучения?

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

Какого уровня можно достичь, пройдя обучение по специальности?

На ITVDN можно пройти полное обучение с нуля до специалиста уровня Trainee/Junior. Если вы уже практикующий разработчик, наши видео курсы помогут углубить ваши знания до уровня Middle.

Когда закончится подписка, что дальше? Доступа к урокам не будет?

После окончания действия вашей подписки доступ к видео курсам, к сожалению, будет закрыт. Однако вы сможете пользоваться теми учебными материалами, которые вы скачали на свой девайс во время обучения.

Суммируются ли скидки на покупку подписки?

Нет, скидки не суммируются.

Notification success