Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Android: coroutines, scope, cancellation

Что произойдёт с корутиной, запущенной в GlobalScope, если вызвать cancel() на родительском скоупе?

Вопрос проверяет знание о независимости корутин в GlobalScope от других CoroutineScope.

Короткий ответ

Корутины в GlobalScope не зависят от других CoroutineScope, поэтому их нельзя отменить через cancel() родительского скоупа. Они продолжат выполняться, пока не завершатся самостоятельно или не будет вызван cancel напрямую.

Длинный ответ

1. Поведение GlobalScope:

  • Корни корутин в GlobalScope — это самостоятельные сущности, не привязанные к иерархии других Job.

  • Даже если родительский CoroutineScope отменён, корутина в GlobalScope не получит уведомление об этом.

2. Пример:

val parentScope = CoroutineScope(Job())  

parentScope.launch {  
    GlobalScope.launch {  
        repeat(100) {  
            delay(1000)  
            println("Корутина в GlobalScope всё ещё работает")  
        }  
    }  
}  

parentScope.cancel() // Не влияет на корутину в GlobalScope  

3. Как отменить корутину в GlobalScope?

  • Сохранять Job и вызывать cancel() вручную:

    val job = GlobalScope.launch { ... }  
    job.cancel()  

Вывод:
GlobalScope игнорирует отмену родительских скоупов, что требует ручного управления.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Android

    Android

Ключевые слова

#coroutines

#scope

#cancellation

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.