Про курс
Механізми асинхронності і багатопоточності часто застосовуються при реалізації сучасних високонавантажених і розподілених додатків, а також при реалізації інтерфейсу користувача і використанні операцій введення/виводу.
Java - це одна з найпопулярніших мов програмування, що використовує асинхронність і багатопоточність зокрема для побудови корпоративних серверних програм, веб-додатків, десктопних і мобільних додатків.
На даному курсі буде розглянуто поняття потоків та багатопоточності загалом, безпосередньо концепція асинхронного програмування, а також сучасні прийоми організації виконання асинхронних завдань мовою Java. Після закінчення курсу ви зможете самостійно створювати багатопотокові та асинхронні завдання на мові Java.
Для розуміння матеріалів даного курсу знадобиться знання мови Java на рівні «Java Поглиблений», базові знання Spring Framework.
Після завершення цього курсу ви навчитеся:
- Реалізувати у своїх додатках принципи асинхронності та багатопоточності для швидкої та неблокуючої роботи програми.
- Створювати та запускати потоки.
- Використовувати ExecutorService та ThreadPool для управління потоками.
- Використовувати Fork/Join Framework для вирішення проблеми з використанням паралельного підходу «розділяй та володарюй».
- Працювати із потокобезпечними колекціями.
- Використовувати Future та CompletableFuture для роботи з асинхронними завданнями.
- Ловити та обробляти винятки, отримані при виконанні асинхронного коду.
- Використовувати асинхронність у веб-застосунках на Spring Framework.
- Керувати виконанням завдань, створюючи користувальницький планувальник завдань.
- Реалізувати у додатку патерни проектування Producer-Consumer та Scatter-Gather.
Цей курс входить до спеціальності:
Попередні Вимоги
Java 8 (або вище), базові знання Spring Framework.
Ви навчитеся
- Створювати та запускати потоки.
- Використовувати ExecutorService та ThreadPool для управління потоками.
- Використовувати Fork/Join Framework для вирішення проблеми з використанням паралельного підходу «розділяй та володарюй».
- Працювати із потокобезпечними колекціями.
- Використовувати Future та CompletableFuture для роботи з асинхронними завданнями.
- Ловити та обробляти винятки, отримані при виконанні асинхронного коду.
- Використовувати асинхронність у веб-застосунках на Spring Framework.
- Керувати виконанням завдань, створюючи користувальницький планувальник задач
- Реалізувати патерни проектування Producer Consumer та Scatter-Gather.
- 4 год 49 хв
- 14.07.2021
- 10
- 14.07.2021
- російська
Що входить до курсу
×
Ви дійсно бажаєте відкрити доступ до тестування за курсом Асинхронне програмування в Java на 40 днів?
Після завершення уроку слухач ознайомиться з поняттям багатопотокового програмування, розбере поняття потоків, їх стану, навчиться створювати потоки та використовувати. Також познайомиться з базовими поняттями для роботи з потоками, такими як м'ютекс, монітор та семафор, навчиться використовувати ключове слово 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. Буде розуміти, як працюють різні інструменти, в основі яких лежать дані патерни. Також ознайомиться на практиці з реалізаціями цих патернів та зможе застосовувати їх у проектуванні власних багатопотокових додатків.