×
Ви дійсно бажаєте відкрити доступ до тестування за курсом Асинхронне програмування в Java на 40 днів?
ВІДЕОУРОК № 3. ExecutorService. ThreadPool. Fork/Join Framework
Після завершення уроку слухач ознайомиться з поняттям багатопотокового програмування, розбере поняття потоків, їх стану, навчиться створювати потоки та використовувати. Також познайомиться з базовими поняттями для роботи з потоками, такими як м'ютекс, монітор та семафор, навчиться використовувати ключове слово 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. Буде розуміти, як працюють різні інструменти, в основі яких лежать дані патерни. Також ознайомиться на практиці з реалізаціями цих патернів та зможе застосовувати їх у проектуванні власних багатопотокових додатків.