Junior — Middle
Czy podczas wykonywania można mówić o hierarchii między korutynami?
sobes.tech AI
Odpowiedź od AI
Tak, w Kotlinie korutyny mogą mieć strukturę hierarchiczną. Gdy uruchamiasz korutynę w kontekście innej korutyny (np. używając launch wewnątrz innej korutyny), tworzy się relacja rodzic-dziecko. Jeśli korutyna rodzic zostanie anulowana, wszystkie jej korutyny dzieci są automatycznie anulowane. Pozwala to zarządzać cyklem życia grup korutyn i zapobiegać wyciekom zasobów.
Przykład:
val parentJob = CoroutineScope(Dispatchers.Default).launch {
val childJob = launch {
// praca korutyny dziecka
}
}
// Przy anulowaniu parentJob, childJob również zostanie automatycznie anulowane
parentJob.cancel()