Sobes.tech
Junior — Middle

Оё мумкин аст дар вақти иҷрои корутинҳо дар бораи мавҷудияти ҳиерархия гап занем?

sobes.tech AI

Ҷавоб аз AI

Бале, дар Kotlin корутинҳо метавонанд сохтори ҳиерархӣ дошта бошанд. Вақте ки шумо корутинро дар контексти дигар корутин (масалан, бо истифода аз launch дар дохили дигар корутин) оғоз мекунед, муносибати падар-ҳомила эҷод мешавад. Агар корутин падар бекор карда шавад, ҳамаи корутинҳои кӯдакии он автоматӣ бекор карда мешаванд. Ин имкон медиҳад, ки давраи ҳаёти гурӯҳҳои корутинҳоро идора кунед ва аз рехтани захираҳо пешгирӣ кунед.

Масалан:

val parentJob = CoroutineScope(Dispatchers.Default).launch {
    val childJob = launch {
        // кори корутин кӯдак
    }
}

// Вақте ки parentJob бекор карда мешавад, childJob низ автоматӣ бекор мешавад
parentJob.cancel()