Чему вы научитесь
- Проектировать и строить отказоустойчивые 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 с нуля. Чтобы обучение было для вас эффективным и вы не столкнулись со слишком высоким барьером сложности, необходимы следующие базовые знания и навыки:
- Уверенное владение синтаксисом 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) по реальным продакшен-треддампам.