JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • CoroutineScope і Job — ієрархія завдань і керування життєвим циклом

    Kotlin SELF
    53 рівень, 0 лекція
    Розбираємо структуровану конкурентність (structured concurrency) у Kotlin-корутинах: навіщо корутинам потрібен «господар» у вигляді CoroutineScope, як runBlocking і coroutineScope створюють межі операцій та автоматично чекають на дочірні завдання, що саме повертає launch (це Job) і як через join() явно керувати точками очікування. Закріплюємо ідею ієрархії «батько → діти» та складаємо невеликий звіт із паралельних кроків у прикладі Expense Tracker.
    Відкрита
  • withContext і dispatcher у корутині: перемикання місця виконання

    Kotlin SELF
    53 рівень, 1 лекція
    Розбираємося, як у межах однієї корутини локально перемикати контекст виконання за допомогою withContext: що таке CoroutineContext і CoroutineDispatcher, чим відрізняються Dispatchers. Default (CPU) і Dispatchers. IO (I/O), чому withContext — це suspend і чому він не дає паралельності. На прикладі міні-застосунку («каса») та логування потоку показуємо перемикання, практичні патерни й типові помилки.
    Відкрита
  • Скасування корутин: cancel/join, кооперативність та isActive

    Kotlin SELF
    53 рівень, 2 лекція
    Розбираємося, як у kotlinx.coroutines працює скасування: чим відрізняються cancel(), join() і cancelAndJoin(), чому скасування корутин кооперативне, де розташовані «точки зупинки» (наприклад, delay()) і як писати власні цикли так, щоб вони коректно реагували на скасування через isActive. Наприкінці — практичний сценарій із «довгим звітом» і розбір типових помилок.
    Відкрита
  • Винятки в корутинах: відмінності launch/async

    Kotlin SELF
    53 рівень, 3 лекція
    Розбираємося, як поводяться винятки в Kotlin-корутинах і чому обробка помилок відрізняється для launch і async: де насправді спрацьовує try/ catch, чому виняток із async зазвичай проявляється на await(), як помилки «спливають» на межі coroutineScope/ runBlocking, і які типові пастки (забутий await(), неправильний вибір білдера, «глушіння» помилок) найчастіше ламають сценарії.
    Відкрита
  • Cleanup під час скасування та помилок — try/finally як гарантія завершення

    Kotlin SELF
    53 рівень, 4 лекція
    Розбираємося, чому в корутинах cleanup — це частина контракту: корутина може завершитися раніше через cancel(), виняток або ранній return. Вчимося гарантувати «прибирання» через try/ finally, правильно чекати завершення через cancelAndJoin(), розподіляти відповідальність за рівнями (батько/діти) й не перетворювати finally на джерело нових помилок.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush