JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Structured Concurrency

    JAVA 25 SELF
    58 уровень,0 лекция
    Structured Concurrency превращает хаотичный набор потоков в управляемую иерархию задач: вы запускаете подзадачи в виртуальных потоках внутри StructuredTaskScope, дожидаетесь их через join(), централизованно обрабатываете ошибки throwIfFailed() и получаете результаты resultNow()/ result(). Разберём политики завершения ShutdownOnFailure и ShutdownOnSuccess, сравним с CompletableFuture, посмотрим примеры агрегатора HTTP и типичные ошибки при использовании структурированной конкурентности.
    Открыта
  • Отмена задач и тайм‑ауты сквозь стек

    JAVA 25 SELF
    58 уровень,1 лекция
    Как корректно отменять долгие и блокирующие операции в Java: кооперативное прерывание через Thread.interrupt(), отмена задач через Future.cancel() и поведение CancellationException, тайм‑ауты и отмена в CompletableFuture ( orTimeout, completeOnTimeout), структурированная конкуррентность с StructuredTaskScope, общий дедлайн (time‑budget) и проброс тайм‑аутов вниз по стеку (включая Instant/ Duration и Scoped Values). Разбираем практику работы с блокирующим IO и типичные ошибки.
    Открыта
  • Синхронизаторы высокого уровня

    JAVA 25 SELF
    58 уровень,2 лекция
    В лекции разбираем высокоуровневые синхронизаторы из java.util.concurrent: CountDownLatch, CyclicBarrier, Phaser и Exchanger. Учимся координировать запуск и завершение задач через await()/ countDown(), строить многоразовые фазы и барьерные действия с await(), управлять динамическими участниками «оркестра» с register()/ arriveAndAwaitAdvance()/ arriveAndDeregister() и обмениваться данными попарно через exchange(). На практике реализуем массовый старт воркеров и «игровой тик», а также разберём типичные ошибки: одноразовость CountDownLatch, обработку BrokenBarrierException и корректный deregister(). Везде обходимся без боли от wait()/ notify().
    Открыта
  • StampedLock и низкоспорные счётчики

    JAVA 25 SELF
    58 уровень,3 лекция
    Когда ReentrantReadWriteLock и классический ReadWriteLock начинают буксовать под высокой нагрузкой, на помощь приходит StampedLock с оптимистичным чтением: связка tryOptimisticRead + validate даёт почти «бесплатные» чтения при редких записях. Разберём режимы блокировок, работу со штампами, ограничения по reentrancy, сравним с ReentrantReadWriteLock, а также посмотрим на низкоспорные счётчики — LongAdder и LongAccumulator — и почему они обгоняют AtomicLong под конкуренцией. Завершим практикой: кэш с преобладающим чтением и мини-бенчмарком.
    Открыта
  • Java Memory Model (JMM)

    JAVA 25 SELF
    58 уровень,4 лекция
    Разбираем правила видимости и упорядочивания операций в Java Memory Model: что означает отношение happens-before, как и когда помогают volatile, synchronized, финальные поля ( final), и почему без них возникают «несвежие» данные. Покажем безопасную публикацию объектов, корректный double-checked locking, низкоуровневый доступ через VarHandle, влияние ложного разделения и аннотацию @Contended, а также практические замечания про Thread.start()/ Thread.join(), Future.get() и микробенчмарки JMH.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush