[ITVDN] Асинхронное программирование в Java (Юрий Миленин)
Механизмы асинхронности и многопоточности часто применяются при реализации современных высоконагруженных и распределенных приложений, а также при реализации пользовательского интерфейса и использовании операций ввода/вывода.
На данном курсе будет рассмотрено понятие потоков и многопоточности в целом, непосредственно концепция асинхронного программирования, а также современные приемы организации выполнения асинхронных задач на языке Java. По окончанию курса вы сможете самостоятельно создавать многопоточные и асинхронные задачи на языке Java.
Автор курса — Юрий Миленин, Middle Java Developer. В записанных видео уроках он демонстрирует техники эффективной реализации асинхронности и многопоточности при помощи Java, опираясь на собственный опыт и лучшие практики.
Формат: Видеоуроки и учебные материалы к ним.
Структура курса:
- Многопоточное программирование.
- Асинхронное программирование.
- ExecutorService. ThreadPool, Fork/Join Framework.
- Потокобезопасные коллекции.
- Future API. Future vs CompletableFuture
- Методы runAsync и supplyAsync. Обработка исключений.
- Объединение нескольких CompletableFuture.
- Асинхронность в Spring. Аннотация @Async
- @Scheduled & SceduleExecutorService
- Паттерны проектирования Producer Consumer и Scatter-Gather.
- Реализовывать в своих приложениях принципы асинхронности и многопоточности для быстрой и неблокирующей работы приложения.
- Создавать и запускать потоки.
- Использовать ExecutorService и ThreadPool для управления потоками.
- Использовать Fork/Join Framework для решения проблемы с использованием параллельного подхода «разделяй и властвуй».
- Работать с потокобезопасными коллекциями.
- Использовать Future и CompletableFuture для работы с асинхронными задачами.
- Ловить и обрабатывать исключения, полученные при выполнении асинхронного кода.
- Использовать асинхронность в веб-приложениях на Spring Framework.
- Управлять выполнением задач, создавая пользовательский планировщик задач.
- Реализовывать в приложении паттерны проектирования Producer-Consumer и Scatter-Gather.
Для понимания материалов данного курса потребуются знания языка Java на уровне «Java Углубленный», базовые знания Spring Framework.