Чему вы научитесь
- Проектировать и строить отказоустойчивые lock-free структуры данных и асинхронные архитектуры для высоконагруженных систем.
- Читать и применять на практике спецификации модели памяти Java (JMM) для обеспечения корректной видимости данных.
- Оценивать стоимость примитивов синхронизации в тактах процессора и оптимизировать код под аппаратную архитектуру (x86/ARM).
- Разрабатывать, настраивать и динамически масштабировать пулы потоков (ThreadPoolExecutor, ForkJoinPool) под разные типы нагрузок.
- Эффективно применять виртуальные потоки (Project Loom), избегать пиннинга и грамотно использовать ScopedValue вместо ThreadLocal.
- Сравнивать, профилировать и проводить нагрузочное тестирование многопоточного кода с помощью микробенчмарков JMH.
- Находить и устранять дедлоки, лайвлоки и утечки памяти в продакшене, используя утилиты jstack, jcmd, JFR и Async Profiler.
- Проектировать архитектурные паттерны Highload-систем (Event Loop, Actor Model, шардирование блокировок).
- Интегрировать многопоточный код с нативными библиотеками через низкоуровневые API (Unsafe и Panama FFI).
О курсе
Java Concurrency под капотом — это продвинутый практический курс для инженеров, готовых выйти за рамки стандартного API и разобраться в истинной природе конкурентных вычислений. Здесь не будет банального пересказа документации: мы погрузимся в архитектуру железа, исходники JVM и паттерны Highload систем.
Почему стоит выбрать именно этот курс?
- Low-Level хардкор: Мы разбираем многопоточность на молекулярном уровне — от тактов процессора, когерентности кэшей (MESI) и барьеров памяти до исходного кода AQS.
- Современный стек: Полное погружение в актуальные тренды JDK — виртуальные потоки (Project Loom), ScopedValue, StructuredTaskScope, VarHandle и Panama FFI.
- Реальный продакшен: Программа наполнена разборами архитектуры и багов из исходников Tomcat, Netty, Apache Spark, Kafka и HikariCP.
Что вы приобретете?
Вы перестанете писать конкурентный код «на авось». Вы получите системное понимание JMM, освоите инструментарий для поиска дедлоков и лайвлоков, научитесь строить lock-free структуры данных и проектировать реактивные, отказоустойчивые системы под экстремальные нагрузки.
Что нужно будет делать?
- Пройти стартовую диагностику из 10 каверзных задач.
- Изучать глубокие теоретические модули с разбором спецификаций и исходников.
- Решать огромное количество тестов для закрепления материала.
Что входит в курс?
Курс состоит из 13 логических блоков, разбитых на следующие ключевые разделы:
- Фундамент: Аппаратная память (MESI, Store Buffer), формальная модель JMM (Happens-before) и устройство планировщика ОС.
- Синхронизация и Lock-Free: Эволюция мониторов synchronized, глубокий разбор AQS, CAS-инструкции CPU и устройство конкурентных коллекций.
- Современная инженерия: Разбор пулов потоков, Виртуальные потоки (Project Loom) и асинхронные пайплайны.
- Архитектура Highload: Event Loop (Netty/epoll), паттерны Backpressure, распределенные блокировки (Redisson/Curator) и устройство HikariCP.
- Тестирование и Профилирование: Нагрузочные тесты в JMH, анализ Thread Dump, работа с JFR/JMC и асинхронными профилировщиками.
- На грани JVM: Off-heap память, трюки с sun.misc.Unsafe и интеграция через Panama FFI.
Для кого этот курс
Начальные требования
Этот курс ориентирован на практикующих инженеров и не подходит для изучения Java с нуля. Чтобы обучение было для вас эффективным и вы не столкнулись со слишком высоким барьером сложности, необходимы следующие базовые знания и навыки:
- Уверенное владение синтаксисом Java и Core API: отличное понимание ООП, обобщений (Generics), работы с исключениями и стандартных коллекций (List, Set, Map).
- Базовый опыт работы с многопоточностью: вы должны знать, как запустить поток через
ThreadилиRunnable, понимать назначение ключевых словsynchronizedиvolatileна базовом уровне, а также иметь представление о том, что такоеFutureиExecutorService. - Общий инженерный бэкграунд: понимание принципов работы клиент-серверной архитектуры, баз данных и базовых структур данных (массивы, списки, деревья).
Как проверить свой уровень?
Первый модуль курса (Модуль 0) полностью бесплатен и открыт для всех. Он содержит диагностический тест из 10 каверзных задач. Если вы сможете решить хотя бы часть из них или детально поймете разбор решений — вы полностью готовы к освоению всей хардкорной программы курса.
Наши преподаватели
Как проходит обучение
Обучение на курсе полностью асинхронное — вы можете проходить его в удобном для вас темпе. Программа построена по принципу «минимум абстрактной теории — максимум глубокого текстового разбора и практики».
Что вас ждет внутри:
- Инженерные текстовые лонгриды без «воды»: Подробные лекции с фокусом на спецификации, анализ исходного кода JDK и архитектурные схемы. Вы будете разбираться, как код транслируется в инструкции процессора и системные вызовы ОС.
- Интерактивные тесты и код-пазлы: Закрепление материала происходит через тесты на автопроверку и каверзные задачи. Вы научитесь читать чужие логи, анализировать треддампы и «на глаз» определять race conditions или утечки памяти.
- Разбор реального продакшена: В каждом модуле вас ждут текстовые разборы реальных архитектурных решений, багов и треддампов из популярных фреймворков и систем (Tomcat, Netty, Kafka, Spark, Spring, Hadoop, Neo4j, Hazelcast).
- Поддержка в комментариях: Вы всегда можете обсудить сложные концепции JMM или особенности Project Loom напрямую с автором курса и коллегами в секции комментариев к шагам.
Программа курса
Что вы получаете
- Фундаментальные знания Java Concurrency уровня Senior / Lead для прохождения сложнейших технических собеседований.
- Умение читать официальные спецификации JMM и исходный код многопоточных пакетов JDK.
- Навыки оптимизации высоконагруженных и асинхронных систем с учетом архитектуры процессора.
- Опыт разбора и поиска скрытых багов (race conditions, deadlocks) по реальным продакшен-треддампам.