Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչ է SupervisorScope-ը և ինչպես օգտագործել այն ծրագրերում?

sobes.tech AI

Պատասխան AI-ից

SupervisorScope — դա Kotlin-ում հատուկ coroutine շրջանակ է, որը օգտագործվում է coroutine խմբի կառավարում համար, որտեղ մեկ coroutine-ի ձախողումը չի հանգեցնում մյուսների չեղարկման:

Նորմալ CoroutineScope-ում, եթե մեկը ձախողվում է, բոլոր երեխաներ coroutine-ները չեղարկվում են: SupervisorScope-ում, coroutine-ները աշխատում են անկախ՝ եթե մեկը ձախողվում է, մյուսները շարունակվում են:

Օգտագործման օրինակ:

import kotlinx.coroutines.*

fun main() = runBlocking {
    supervisorScope {
        val child1 = launch {
            println("Երեխա 1 սկսվում է")
            delay(100)
            throw Exception("Երեխա 1-ում սխալ")
        }
        val child2 = launch {
            println("Երեխա 2 սկսվում է")
            delay(200)
            println("Երեխա 2 ավարտված")
        }
        child1.join()
        child2.join()
    }
}

Այս օրինակով, child1-ում սխալը չի կասեցնի child2-ին։ Սա օգտակար է, երբ ուզում եք, որ մեկ գործի ձախողումը չխանգարի մյուսների կատարմանը։