Junior — Middle
Kotlin korutinləri kontekstində SupervisorJob anlayışını izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də SupervisorJob, bir xətanın digərini ləğv etmədiyi xüsusi Job növüdür. Adi Job-da, əgər bir uşaq korutinasında istisna baş verərsə, bütün valideyn Job və onun bütün uşaq korutinaları ləğv edilir.
SupervisorJob halında, korutinalar müstəqil işləyir: əgər biri xəta ilə başa çatarsa, digərləri davam edir. Bu, bir neçə paralel vəzifəni başlatmaq və birinin uğursuzluğu zamanı hamısını dayandırmamaq üçün faydalıdır.
İstifadə nümunəsi:
val supervisor = SupervisorJob()
val scope = CoroutineScope(Dispatchers.Default + supervisor)
scope.launch {
launch {
// Bu korutina uğursuz ola bilər, amma digərlərinə təsir etməz
throw RuntimeException("Xəta")
}
launch {
// Bu korutina işləməyə davam edəcək
println("İşləyir")
}
}
Beləliklə, SupervisorJob uşaq korutinalar arasındakı xətaları izolyasiya etməyə kömək edir və daha dayanıqlı paralel vəzifələrin icrasını təmin edir.