Назад к вопросам
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. Это полезно, когда нужно, чтобы сбой одной задачи не прерывал выполнение других.