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.