{ingots_code_flinks} {ingots_code_links}
» » Павел Сорокин - Многопоточность в Java (Тариф Стандарт) (2026) Видеокурс
Google, поиск...

Павел Сорокин - Многопоточность в Java (Тариф Стандарт) (2026) Видеокурс

Павел Сорокин - Многопоточность в Java (Тариф Стандарт) (2026) Видеокурс

Будешь спокойно писать многопоточные приложения, проходить собесы на middle+ без страха и сможешь претендовать на вакансии с зарплатой в 2 раза выше.

Программа:

Модуль 1. Открываем капот: потоки, процессы, Threads API, JVM, Daemon, Synchronized, Volatile
Зачем нужна многопоточность: где однопоточность «держит» систему; эффект очередей и блокирующих операций
Поток как единица исполнения в общей памяти процесса: общий 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 (видимость)

Модуль 2. Укрощаем хаос: JMM, Reordering, ReentrantLock, Semaphore, Deadlock, Livelock
Java Memory Model (JMM): program order, happens?before, основные HB?рёбра (unlock?lock, volatile write?read, start/join).
Reordering: где возможен (компилятор/JIT/CPU) и почему без HB порядок не гарантирован; volatile — видимость/порядок, но не атомарность
Межпоточная сигнализация: монитор, очереди EntryList/WaitList, wait/notify/notifyAll, spurious wakeups и правило while; тайм?ауты ожидания.
ReentrantLock и Condition: re?entry, lockInterruptibly (), tryLock (timeout), await/signal, несколько условий ожидания.
Semaphore: permits, ограничение параллелизма, fair/non?fair режимы.
ReadWriteLock: совместимость читателей, эксклюзивный писатель, отсутствие безопасного апгрейда read?write, starvation и fair?режим.
CountDownLatch: одноразовый барьер N?0, await (timeout), сценарии start?gate/completion?gate.
Атомики и CAS: Atomic*, CAS?цикл, конфликты и спины, ABA и AtomicStampedReference.
Deadlock: как обнаружить, условия Коффмана, «обедающие философы», порядок локов, tryLock (timeout) + откат.
Livelock: «уступчивые» симметричные протоколы, разрыв симметрии (backoff/приоритет).
ThreadLocal: внутренняя модель (ThreadLocalMap), кейсы применения, утечки в пулах и best?practices
Практика: собственная ArrayBlockingQueue на synchronized + wait/notify, продюсеры/консюмеры, проверка корректности.
Результат:
Узнаешь, как Java гарантирует видимость и порядок между потоками (Java Memory Model, happens?before, reordering).
Получишь набор практических приёмов межпоточной сигнализации (wait/notify/notifyAll) и научится избегать типовых багов (потерянные сигналы, ложные пробуждения).
Сможешь осознанно выбирать примитив синхронизации (ReentrantLock/Condition, Semaphore, ReadWriteLock, CountDownLatch) под задачу и использовать тайм?ауты/прерывание для выхода из вечного ожидания.
Научишься применять атомики и CAS, объяснять ABA?проблему и её фиксы.
Сможешь воспроизводить и устранять deadlock и livelock (включая «уступчивый» сценарий), работать с ThreadLocal без утечек и реализовать безопасную блокирующую очередь

Модуль 3. Продвинутые средства: ExecutorService, CompletableFuture, Concurrent Collections, Virtual Threads
I/O-bound vs CPU-bound: задачи, ограниченные скоростью операций ввода-вывода, и задачи, ограниченные вычислительными ресурсами; определения, метрики и стратегия выбора пула потоков.
ExecutorService и разновидности ThreadPoolExecutor: FixedThreadPool, CachedThreadPool, ScheduledThreadPool и SingleThreadExecutor; работа очереди задач, рабочих потоков и механизмы завершения пула.
ForkJoinPool: модель work-stealing (распределения задач с кражей работы), использование классов RecursiveTask и RecursiveAction; общий ForkJoinPool для параллельных потоков (parallel streams) и пул по умолчанию для CompletableFuture.
Parallel Streams: когда применение оправдано, влияние числа доступных процессорных ядер (Runtime.getRuntime ().availableProcessors ()), и почему такие потоки не подходят для сценариев с интенсивным вводом-выводом.
Асинхронная модель: интерфейсы Runnable, Callable и Future; жизненный цикл Future; использование CompletableFuture, основные операторы, обработка ошибок и таймауты.
Потокобезопасные коллекции: ConcurrentHashMap, CopyOnWriteArrayList, ArrayBlockingQueue и LinkedBlockingQueue (массив против связного ccc, примеры проблем при использовании обычных HashMap и ArrayList в многопоточности.
Virtual Threads: создание через Thread.ofVirtual ().start () и Executors.newVirtualThreadPerTaskExecutor (); как JVM сопоставляет виртуальных и системных потоков (N к M), механизмы монтирования и размонтирования, сравнение с потоками операционной системы и ограничения в java-21
Результат:
Поймёшь разницу между IO?bound и CPU?bound задачами и научишься выбирать модель выполнения под профиль нагрузки (ThreadPoolExecutor vs ForkJoinPool vs Virtual Threads)
Сможешь безопасно работать с пулами потоков: конфигурация, отправка задач, корректное завершение (shutdown/awaitTermination), анти?паттерны ожидания на get/join без нужды
Освоит Runnable/Callable/Future и построение неблокирующих цепочек на CompletableFuture (thenApply/thenCompose/thenCombine/allOf/anyOf, обработка ошибок exceptionally/handle)
Разберёшь устройство и гарантии популярных конкурентных коллекций (ConcurrentHashMap, CopyOnWriteArrayList, ArrayBlockingQueue, LinkedBlockingQueue) и применишь их вместо небезопасных аналогов под конкуренцией.
Поймёшь, как устроены Virtual Threads (Loom): mapping на carrier?потоки, mount/unmount стека, где они выигрывают, а где нет; увидит практические ограничения (thread pinning, тяжёлые ThreadLocal).
Сможешь сравнить выполнение на обычных пулах и на VT на типичных I/O?сценариях (десятки тысяч задач) и сделать обоснованный выбор

Модуль 4. Боевое крещение: реальный production-case проект
Thread-per-Request в Tomcat — классическая модель, где каждому запросу выделяется поток. Покажем, где у неё пределы и как это влияет на масштабирование
Event-loop и WebFlux / Netty — неблокирующая архитектура, где один поток обслуживает тысячи соединений.
Virtual Threads (Java 21+) — новая эпоха Java-параллелизма. Подключим виртуальные потоки в Spring Boot и покажем, как убрать боль реактивщины без потери производительности
I/O-bound и CPU-bound, закон Амдала — объясняем, почему многопоточность не всегда ускоряет, и как найти оптимальный баланс
Rate-limiters и HikariCP — где рождаются «бутылочные горлышки» в реальных прод-сервисах и как их диагностировать и предотвратить
План деградации и изоляция ресурсов — как защитить систему, если одно из API начинает тормозить
Финальный прод-кейс — очередь задач, асинхронный раннер, три внешних API (Stock, Pricing, Shipping), статусы NEW ? IN PROGRESS ? DONE/FAILED. Реальный сценарий с архитектурой, близкой к продакшену.
Результат:
Поймёшь, как Spring Boot и Tomcat обрабатывают параллельные запросы (модель thread-per-request)
Увидишь воочию контраст с event-loop/WebFlux
Разберёшься в типовых узких местах (очереди, пулы, лимиты) и применишь эти знания в практике
Реализуешь production-like асинхронный обработчик заказов с ретраями и агрегацией результатов
На выходе будешь уметь диагностировать bottleneck, проектировать очередь задач и использовать виртуальные потоки там, где они дают выигрыш

Автор Паша Сорокин (S0R0KlN) — Java backend-разработчик и контент-мейкер, ведущий YouTube-канал и Telegram-канал об IT. Он специализируется на Java-разработке, микросервисах, а также проводит mock-собеседования для помощи в трудоустройстве

Информация о видео
Название: Многопоточность в Java (Тариф Стандарт)
Автор: Павел Сорокин
Год выхода: 2026
Жанр: Видеокурс
Язык: Русский
Выпущено: Россия
Продолжительность: долго

Файл
Формат: MP4
Видео: AVC, 1920x1080, ~550 Kbps
Аудио: AAC, 128 Kbps, 48.0 KHz
Размер файла: 8 Gb

Скачать Павел Сорокин - Многопоточность в Java (Тариф Стандарт) (2026) Видеокурс


Печать
    404     Информация    
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.    

Аккаунт

      Онлайн

    Всего онлайн: 73

    Гости (63)

    Боты (10): Google Bot, robot Bot, Yandex Bot, robot Bot, Yandex Bot, Yandex Bot, Yandex Bot, Yandex Bot, Yandex Bot, robot Bot



    Сегодня посетили (40): colt, EdnaCawthorne72, DarrenGonsalves, IsisLofland7982, ReinaldoDanis2, StacyHinz537820, Мастер на час, Muriel96N64, Pkfnjecn, BruceCheshire29, LUTKrystal, JudyGoodrich0, DarlaQuiros555, Betsy58378406, HarrietOden9, CyrilAquino388, PhilomenaGfc, BrianFed, nysymScots, CVVClarence, UrsulaPolglaze0, BevN65160773007, CharityShafer1, LincolnMenzies, SherlenePettis, admin, SusanneZkm, KTP25cauck, SkyeField85, RodrickDonohue, TyrellR32496592, LoraWilhelm622, GradyGerace, WildaFitchett, vipdepbit, JesusDashwood8, AngeliaStover3, ConcepcionPlayfa, Corina68W3, Francis16J

    Наш опрос