О курсе
Механизмы асинхронности и многопоточности часто применяются при реализации современных высоконагруженных и распределенных приложений, а также при реализации пользовательского интерфейса и использовании операций ввода/вывода.
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 м
- 10
- русский
Что входит в курс
×
Вы действительно хотите открыть доступ к тестированию по курсу Асинхронное программирование в 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. Будет понимать, как работают различные инструменты, в основе которых лежат данные паттерны. Также ознакомится на практике с реализациями этих паттернов и сможет применять их в проектировании собственных многопоточных приложений.
Вопросы и ответы
Онлайн курсы имеют ряд преимуществ перед оффлайн форматом:
- Независимость от локации. Онлайн позволяет учиться где угодно.
- Сохранение денег и времени на дорогу. Вы экономите время и деньги с поездок на курсы и обратно.
- Онлайн курсы дешевле. Нет нужды в помещении и ноутбуках для студентов, поэтому стоимость ниже.
- Удобный темп обучения, постоянный доступ к информации. Обучение в вашем темпе в любом месте 24/7. Также есть доступ к записанным урокам, чего нет в оффлайн формате.
На ITVDN есть 2 формата обучения: Live Online и видео курсы. Цена обучения зависит от выбранного вами способа обучения.
Если вы хотите учиться самостоятельно в формате видео курсов, стоимость обучения составит в среднем 10-15 USD в месяц в зависимости от выбранного вами пакета подписки.
Live Online – это онлайн обучение с тренером в группах вместе с другими студентами. Учеба в данном формате стоит в среднем 6-7 USD за один час.
Зависит от того, сколько внимания программированию вы будете выделять ежедневно, какой именно это язык и какой у вас опыт кодинга. Среднее время на овладение одним языком при условии регулярных занятий хотя бы 2 часа в день:
- новички – от 3 до 6 месяцев;
- те, кто имеет базовые знания другого языка – от 1 до 3 месяцев;
- профессиональные программисты – до 1 месяца.
Самый лучший вариант инвестиции времени – 8 часов ежедневно (20% теории + 80% практики). Больше практики – быстрее овладеете программированием.
Для овладения IT-специальностью нужно выделить не менее 500 часов, из которых около 100 часов – на просмотр видео уроков или посещение онлайн занятий с ментором, а 400 – на выполнение практических заданий по пройденным темам.
В зависимости от того, сколько времени вы готовы выделять на обучение в день, вы сможете пройти программу за 3-8 месяцев. Если у вас есть определенная база знаний по IT, количество необходимого времени будет меньшим.
Также продолжительность обучения зависит от выбранной вами специальности, поскольку набор технологий, которые вы должны изучить, будет разным.
Начинать следует с тех, которые содержат в названии слово “Стартовый”. Такие курсы имеют вводный материал для знакомства с языком или технологией.
Если вы планируете учиться по конкретной специальности в формате видео курсов, перейдите на страницу специальности и прокрутите до заголовка “Видео курсы по специальности …”. Ниже будет список видео курсов, отсортированных в порядке необходимости изучения.
Ещё ниже вы найдете Roadmap по специальности – путеводитель, на котором изображены видео курсы в виде дерева, что также легко сориентирует вас в последовательности прохождения курсов.
Если вы выбираете Live Online обучение с тренером, всё очень просто:
- посещайте все занятия, вовремя выполняйте д/з;
- дополнительно смотрите видео уроки на ITVDN;
- после каждого урока проходите краткое тестирование;
- практикуйтесь в Интерактивном практикуме;
- общайтесь с одногруппниками в ходе решения д/з, задавайте вопросы ментору на уроках и вне их;
- в конце каждого курса сдавайте экзамен на TestProvider (и получайте Сертификаты);
- в конце всего обучения проходите экзамен по специальности и получите диплом.
Мы имеем специальный раздел – “Вакансии”, который помогает нашим студентам искать первую работу в IT. Детальнее о возможностях и о разделе по ссылке.
А для тех, кто учится онлайн с ментором, у нас дополнительно предусмотрена индивидуальная помощь HR-специалиста по подготовке к трудоустройству с первого дня обучения и до получения первого job-оффера. Она включает в себя помощь в оформлении соцсетей, подготовке резюме, проведении пробного собеседования, предоставлении советов по поиску работы и самопрезентации и т. д.
К сожалению, данная услуга ITVDN не предусмотрена, однако вы можете заказать индивидуальную консультацию с нашим ментором. Подробности вы найдете по ссылке.
На ITVDN отсутствуют курсы для детей, поэтому комфортный возраст для начала обучения по нашим материалам – от 14 лет.
Никаких требований к вашему уровню английского мы не выдвигаем, поскольку все учебные материалы идут на русском или украинском языках. При этом базовые знания английского будут полезны для комфортного поиска информации в гугле, чтения документаций в интернете и прочего.
На ITVDN можно пройти полное обучение с нуля до специалиста уровня Trainee/Junior. Если вы уже практикующий разработчик, наши видео курсы помогут углубить ваши знания до уровня Middle.
После окончания действия вашей подписки доступ к видео курсам, к сожалению, будет закрыт. Однако вы сможете пользоваться теми учебными материалами, которые вы скачали на свой девайс во время обучения.
Нет, скидки не суммируются.
Отзывы наших студентов
Отзывы в DOU
4,9/5 - 200 отзывов
Отзывы в Facebook
5,0/5 - 707 отзывов
Отзывы в Google
4,9/5 - 836 отзывов