Разберись в потоках от фундамента до production-кода
Будешь спокойно писать многопоточные приложения, проходить собесы на middle+ без страха и сможешь претендовать на вакансии с зарплатой в 2 раза выше
Многопоточка — это must-have как для собесов, так и для работы
Так что ты обязан в ней разбираться, если хочешь такие офферы
Оффер на 435.000 ₽
Оффер на 450.000 ₽
Хватит откладывать. Хватит чувствовать себя самозванцем. Пора разобраться в многопоточности раз и навсегда
Для кого этот курс
01
Новичок, знающий только базу по Java и Spring
Сейчас самое время освоить многопоточность. Гораздо проще разобраться с ней на старте карьеры, чем потом догонять под давлением боевых задач.
02
Junior/Middle Java-разработчик
Умеешь писать REST API, работаешь с базами данных, но многопоточность остаётся белым пятном и это мешает браться за самые интересные проекты
03
Хочешь качать харды
Тебе важно становиться сильнее как кодер и расти по ЗП с помощью хардов, а не самопрезентаций и легенд
Формат курса
Видео-уроки на платформе
Смотришь в удобное время, ставишь на паузу, пересматриваешь. Доступ на 6/12 в месяцев в зависимости от тарифа — без дедлайнов и стресса
15 часов концентрированного контента
За 1–2 недели в своём темпе превратишь многопоточность из «страшно» в рабочий инструмент.
60% кода, 40% визуальных объяснений
Сначала понимаешь, как всё устроено «под капотом», потом сразу пишешь реальный многопоточный код.
4 практические домашки
Первая — осознание основ и запуск потока, последняя — реальный production-case
Программа
Благодаря которой ты полностью, системно от и до разберёшься в многопоточности

  • Зачем нужна многопоточность: где однопоточность «держит» систему; эффект очередей и блокирующих операций
  • Поток как единица исполнения в общей памяти процесса: общий heap, stack у каждого потока
  • Program → Process → Thread: от запуска программы до выполнения кода в потоке
  • Планировщик ОС: очереди Ready/Waiting/Blocked; RUNNABLE ≠ RUNNING; стоимость переключений контекста; недетерминизм порядка
  • Базовый Thread API: Thread/Runnable; start vs run; join; sleep (TIMED_WAITING); interrupt и восстановление флага; наблюдение состояний (getState)
  • Daemon vs User: определение, назначение, условия завершения JVM, риски использования демонов для бизнес‑логики
  • Введение в синхронизацию: race condition; mutex/критическая секция; synchronized; volatile;


Результат

  • Поймёшь, как устроены процессы и потоки в JVM и ОС, где у них общая и изолированная память
  • Сможешь уверенно создавать и управлять потоками: запуск, ожидание, усыпление, корректная остановка.
  • Научишься объяснять работу планировщика, очереди Ready/Waiting/Blocked и почему порядок выполнения непредсказуем
  • Будешь различать user‑ и daemon‑потоки и поймёшь, когда и почему JVM завершает работу.
  • Освоишь базу синхронизации: зачем нужен mutex, когда использовать synchronized, а когда volatile (видимость)

Домашнее задание

Interrupt Me If You Can

Вы — агент, охотящийся за потоками, которые разбегаются по ядрам операционной системы, как хитрые беглецы. Планировщик — хаотичный дирижёр, меняющий порядок исполнения каждую миллисекунду. Иногда вам удаётся поймать задачу и кинуть ей interrupt (), но чаще она ускользает в бесконечный контекст-свитч. В этой лаборатории вы сами проживёте жизнь потока — создадите, запустите, приостановите и остановите его. Познаете разницу между run () и start (), поймёте, зачем нужны daemon-потоки и как volatile и synchronized удерживают порядок в хаосе. В итоге вы обуздаете хаос исполнения — потоки слушаются interrupt (), volatile и synchronized.
Диаграмма финального проекта:
Async Runner 2049
Асинхронный процессинг заказов. Сервис принимает заказ, мгновенно возвращает 201 + taskId, а дальше сам параллелит внешние вызовы (Pricing/Stock/Delivery), агрегирует результат и пишет в БД. Внутри — очередь задач на базе БД, поллер, раннер и CompletableFuture‑композиция. В конце — A/B сравнение: обычный ExecutorService vs «виртуальный поток на задачу»
Паша Сорокин
Java backend разработчик
Ты превратишь многопоточность из стыдного пробела, который тормозит твой рост, в твою суперсилу — будешь уверенно писать concurrency-код в продакшне, проходить собеседования на middle+ и брать задачи, которые раньше обходил стороной, получая доступ к вакансиям с зарплатой в 2 раза выше
Создаёт заказ + NEW-задачу, отвечает 201 + taskId.
REST-эндпойнты POST /orders, GET /orders/{id}. Вставка в orders/tasks в одной транзакции; возвращает идентификатор, не блокируя клиента ожиданием внешних вызовов.
Батч-выборка NEW/RETRYABLE с SKIP LOCKED → IN_PROGRESS. Периодический поллинг с ограничением попыток и next_attempt_at. Гарантирует, что параллельные инстансы не конфликтуют.
3 параллельных HTTP-вызова, CompletableFuture-агрегация.
Фан-аут/фан-ин: Pricing, Stock, Delivery. Время ожидания на каждый вызов, маппинг ошибок: 5xx/timeout → retryable, 4xx → non-retryable.
Храним заказы и очередь задач в одной БД.
Таблицы orders и tasks (поля status, attempts, next_attempt_at). Реляционная целостность, фиксируем итоговые статусы DONE/FAILED/ERROR.
Считает цену, иногда тормозит/падает для тренировки ретраёв.
Эмулирует I/O-задержки и ошибки, чтобы показать поведение пула и ретраев.
Резерв склада: OK/отказ.
Возвращает успех/отказ резервирования; при отказе — завершаем заказ и задачу как ERROR (non-retryable).
Планирует доставку, выдаёт ожидаемое время доставки.
Стаб-сервис со случайными задержками для демонстрации перекрытия ожиданий и таймаутов.
Java 21 · Spring Boot 3.5 · Gradle 8 · PostgreSQL 18 · Liquibase 4.31 · Docker Compose · Swagger/OpenAPI
Диаграмма финального проекта:
Async Runner 2049
Асинхронный процессинг заказов. Сервис принимает заказ, мгновенно возвращает 201 + taskId, а дальше сам параллелит внешние вызовы (Pricing/Stock/Delivery), агрегирует результат и пишет в БД. Внутри — очередь задач на базе БД, поллер, раннер и CompletableFuture‑композиция. В конце — A/B сравнение: обычный ExecutorService vs «виртуальный поток на задачу»
Создаёт заказ + NEW-задачу, отвечает 201 + taskId.
REST-эндпойнты POST /orders, GET /orders/{id}. Вставка в orders/tasks в одной транзакции; возвращает идентификатор, не блокируя клиента ожиданием внешних вызовов.
Батч-выборка NEW/RETRYABLE с SKIP LOCKED → IN_PROGRESS. Периодический поллинг с ограничением попыток и next_attempt_at. Гарантирует, что параллельные инстансы не конфликтуют.
3 параллельных HTTP-вызова, CompletableFuture-агрегация.
Фан-аут/фан-ин: Pricing, Stock, Delivery. Время ожидания на каждый вызов, маппинг ошибок: 5xx/timeout → retryable, 4xx → non-retryable.
Храним заказы и очередь задач в одной БД.
Таблицы orders и tasks (поля status, attempts, next_attempt_at). Реляционная целостность, фиксируем итоговые статусы DONE/FAILED/ERROR.
Считает цену, иногда тормозит/падает для тренировки ретраёв.
Эмулирует I/O-задержки и ошибки, чтобы показать поведение пула и ретраев.
Резерв склада: OK/отказ.
Возвращает успех/отказ резервирования; при отказе — завершаем заказ и задачу как ERROR (non-retryable).
Планирует доставку, выдаёт ожидаемое время доставки.
Стаб-сервис со случайными задержками для демонстрации перекрытия ожиданий и таймаутов.
Java 21 · Spring Boot 3.5 · Gradle 8 · PostgreSQL 18 · Liquibase 4.31 · Docker Compose · Swagger/OpenAPI
Паша Сорокин
Java backend разработчик
Ты превратишь многопоточность из стыдного пробела, который тормозит твой рост, в твою суперсилу — будешь уверенно писать concurrency-код в продакшне, проходить собеседования на middle+ и брать задачи, которые раньше обходил стороной, получая доступ к вакансиям с зарплатой в 2 раза выше
Бонусы курса
Бонус 1
Закрытый чат «Поток многопоточности»
Telegram-чат студентов + кураторы
Ответы на вопросы
Разбор ошибок
Обсуждение собеседований и подготовка
Здесь ты не застрянешь: спросил — получил помощь, подсказку или ревью. Это даёт мотивацию и скорость.
Бонус 2
Чек‑лист «20 ошибок в многопоточности»
PDF с разбором типичных ошибок, которые встречаются даже у опытных разработчиков.
Ошибка: использование HashMap в многопоточности
Решение: ConcurrentHashMap
Ошибка: блокировка под synchronized на длинные операции
Решение: выносить блокировку на минимум
Ошибка: забыли про volatile при доступе из разных потоков
Решение: понимание visibility
И ещё 17 реальных примеров с объяснением, как чинить
Используй как шпаргалку для код‑ревью. Особенно полезно перед собеседованиями — многие задачи ровно про это.
Бонус 3
Видео — топ‑10 вопросов на собесе
Формат: «Как отвечать на вопросы про потоки, чтобы звучать как увереный middle+».
Реальные вопросы с собесов
Как объяснять сложные темы простым языком
Какие примеры приводить, чтобы выглядеть убедительно
Как вести себя, если не знаешь ответа (спойлер: это нормально)
Разбор типичных «ловушек» в вопросах интервьюеров
Это как репетиция интервью — после просмотра ты будешь звучать уверенно.
Бонус 4
Проверка финальной домашки (только в тарифе «С поддержкой»)
Ты сдаёшь свой прод‑кейс: обработчик очереди задач. Его разбирает опытный разработчик.
Проверка синхронизации доступа к данным
Оптимален ли выбор инструментов
Чистота кода и структура проекта
Рекомендации по улучшению
Это твой гарантированный уровень качества: проект, который не стыдно показывать на собеседовании.
Тарифы
действуют до 31 декабря
Стандарт
Для тех, кому нужна вся теория и практика, но проверка не критична — идёшь в своём темпе и контролируешь прогресс сам
4 модуля курса (15 часов видео)
4 практические домашки (от простых к продакшн-кейсу)
Реальный проект для портфолио — обработчик очереди задач
Чек-лист «20 ошибок в многопоточности»
Видео-разбор топовых вопросов на собесах
Доступ в закрытый чат «Поток многопоточности» — 3 месяца
Доступ к материалам — 6 месяцев
Подарочный мини-курс "15 лайфкодинг задач с собесов"
Подарочный мини-курс "Разбор ТОП-30 вопросов по Java и бэкэнду на BigTech собесах"
Проверка и код-ревью финального проекта ментором — действует в течение 3 месяцев после оплаты
С поддержкой
Для тех, кому важна обратная связь от ментора на финальный production-кейс — получишь разбор ошибок и точки роста, дофиналишь код до рабочего варианта
4 модуля курса (15 часов видео)
4 практические домашки (от простых к продакшн-кейсу)
Реальный проект для портфолио — обработчик очереди задач
Чек-лист «20 ошибок в многопоточности»
Видео-разбор топовых вопросов на собесах
Доступ в закрытый чат «Поток многопоточности» — 6 месяцев
Доступ к материалам — 12 месяцев
Проверка и код-ревью финального проекта ментором — действует в течение 3 месяцев после оплаты
Подарочный мини-курс "15 лайфкодинг задач с собесов"
Подарочный мини-курс "Разбор ТОП-30 вопросов по Java и бэкэнду на BigTech собесах"
Частые вопросы
Да, потому что у тебя на собесе про многопоточку точно спросят. В рамках курса мы начинаем с основ (что такое поток, зачем он нужен), идём от простого к сложному: сначала разбираем базовые проблемы (race condition, deadlock), потом учимся их решать через правильные инструменты (synchronized, Lock, Atomic). К концу ты будешь уверенно отвечать на собесах и применять в проектах. Если знаешь базовый Java (коллекции, исключения, ООП) — тебе точно зайдёт
Остались вопросы?
Жми на кнопку и записывайся на бесплатную консультацию, мы поможем тебе со всем разобраться :)
Хватит откладывать. Закроешь за неделю то, что тянулось месяцами
Ты получаешь не только знания, но и практический опыт, проект в портфолио и готовность к вопросам на собеседованиях.