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

Замовити дзвінок

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

Підписка

Замовити дзвінок

+38 099 757 27 82

Про курс

Асинхронність - це спосіб написання програми чи її частини так, щоб послідовне, крок за кроком, виконання програмних завдань не блокувало початок виконання нових завдань. За такою парадигмою програма може розпочати виконання наступного завдання, доки попереднє ще виконується. Це робить програму більш ефективною, здатною швидко та вчасно реагувати на запити.

Цей курс дозволить вам сформувати необхідну базу знань та практичних навичок для успішної роботи з асинхронним кодом

Курс «Асинхронне програмування в 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.
Читати далі...
Завантажити матеріали курсу Для отримання матеріалів курсу необхідно авторизуватися
Отримати сертифікат Для отримання сертифікату необхідно авторизуватися
  • Тривалість: 3 год 37 хв
  • Статус: у записі
  • Уроків: 6
  • Уроків: 6 з 12
  • Мова: українська

Що входить до курсу

  • 6 відео уроків
Увійдіть або зареєструйтеся для того, щоб продовжити перегляд безкоштовного відео

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

Читати далі...

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

Читати далі...

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

Читати далі...

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

Читати далі...

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

Читати далі...

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

Читати далі...
ПОКАЗАТИ ВСЕ

Купуй передплатуз доступом до всіх курсів та сервісів

Бібліотека сучасних IT знань у зручному форматі

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

Стартовий
  • Усі відеокурси на 3 місяці
  • Тестування з 10 курсів
  • Перевірка 5 домашніх завдань
  • Консультація з тренером 30 хв
59.99 $
Придбати
Halloween
  • Усі відеокурси на 15 місяців
  • Тестування з 24 курсів
  • Перевірка 20 домашніх завдань
  • Консультація з тренером 120 хв
  • Завантаження відео уроків
  • Можливість призупинення навчання
110.00 $
220.00 $
Придбати
Акція
Базовий
  • Усі відеокурси на 12 місяців
  • Тестування з 16 курсів
  • Перевірка 10 домашніх завдань
  • Консультація з тренером 60 хв
89.99 $
Придбати
коментарі та обговорення
Notification success