JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
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 дає майже «безкоштовні» читання за рідкісних записів. Розглянемо режими блокувань, роботу зі штампами, обмеження щодо реентрантності, порівняємо з 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
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush