Sobes.tech
Junior — Middle

Kotlinдеги корутиндерди башкарууда SupervisorJobдун ролу кандай?

sobes.tech AI

AIден жооп

SupervisorJob Kotlinде — бул атайын түрдөгү Job, ал корутиндер тобун башкарууда колдонулат жана алардын ортосунда ката кетирүүнүн изоляциясын камсыздайт.

SupervisorJobдун негизги ролу — балдар корутиндери көз карандысыз иштөөсүнө мүмкүндүк берүү: эгер бир балдар корутин иши каталар менен аяктап калса, бул башка SupervisorJob ичинде ишке киргизилген корутиндердин бардыгын жокко чыгаруусуна алып келбейт.

Бул жөнөкөй Jobдон айырмаланат, анда бир балдар корутиндеги каталар бардык ата-эненин Jobун жана анын бардык балдарын жокко чыгарарын билдирет.

Колдонуу мисалы:

val supervisor = SupervisorJob()
val scope = CoroutineScope(Dispatchers.Default + supervisor)

scope.launch {
    // корутин 1
}
scope.launch {
    // корутин 2, эгер каталар менен түшсө, 1-элемент ишин улантат
}

SupervisorJob көпчүлүк учурда, бир нече көз карандысыз тапшырмаларды ишке киргизүү керек болгондо жана биринин иши башкасына таасир этпеши керек болсо, пайдалуу болот.