Sobes.tech
Junior — Middle

Асинхрондук колдонмолордо корутиндерди кантип токтотуп жана токтотуп коюу керек?

sobes.tech AI

AIден жооп

Kotlin-də, korutinlər JobCoroutineScope obyektləri vasitəsilə idarə olunur. Korutinləri dayandırmaq və dayandırmaq üçün aşağıdakı mexanizmlər istifadə olunur:

  • Dayandırma — korutinlər suspend açar sözü və funksiyalar vasitəsilə dayandırıla bilər (məsələn, delay()). Bu, iş parçasını bloklamır, lakin korutina daha sonra davam edir.

  • İmtina (dayandırma) — korutinlər Job-larının cancel() metodunu çağırmaqla imtina edilə bilər. İmtina zamanı, korutina CancellationException istisnası alır və düzgün şəkildə tamamlanmalıdır.

Korutini imtina etməyin nümunəsi:

val job = CoroutineScope(Dispatchers.Default).launch {
    repeat(1000) { i ->
        println("İşləyirəm $i ...")
        delay(500)
    }
}

// Korutini 2 saniyə sonra dayandır
CoroutineScope(Dispatchers.Default).launch {
    delay(2000)
    job.cancel()
    println("Korutina imtina edildi")
}

Beləliklə, dayandırma korutinlərin təbii bir hissəsidir və dayandırma, Job vasitəsilə onların imtinasıdır.