Sobes.tech
Назад к вопросам
Junior — Middle
64

Можете объяснить, что такое SupervisorScope и как его использовать в приложениях?

Компании, где спрашивали
RedLab
Effective Mobile

Ответ от нейросети

sobes.tech AI

SupervisorScope — это специальный корутинный скоуп в Kotlin, который используется для управления группой корутин, где сбой одной корутины не приводит к отмене всех остальных.

В обычном CoroutineScope при ошибке в одной корутине все дочерние корутины отменяются. В SupervisorScope корутины работают независимо: если одна падает, остальные продолжают выполняться.

Пример использования:

import kotlinx.coroutines.*

fun main() = runBlocking {
    supervisorScope {
        val child1 = launch {
            println("Child 1 starts")
            delay(100)
            throw Exception("Error in child 1")
        }
        val child2 = launch {
            println("Child 2 starts")
            delay(200)
            println("Child 2 completed")
        }
        child1.join()
        child2.join()
    }
}

В этом примере ошибка в child1 не отменит child2. Это полезно, когда нужно, чтобы сбой одной задачи не прерывал выполнение других.