Junior — Middle
W jaki sposób funkcja suspendowana informuje o swoim tymczasowym zatrzymaniu wykonania?
sobes.tech AI
Odpowiedź od AI
Funkcja suspend w Kotlinie informuje o swoim tymczasowym zatrzymaniu wykonania za pomocą mechanizmu korutyn. Po wywołaniu funkcji suspend, wykonanie może zostać zawieszone bez blokowania wątku, a stan funkcji jest przechowywany w specjalnym obiekcie o nazwie Continuation. Gdy funkcja jest zawieszona, zwraca kontrolę do wywołującego, a po zakończeniu operacji asynchronicznej wykonanie jest wznawiane z tego samego miejsca.
Przykład:
suspend fun fetchData(): String {
delay(1000) // zawiesza korutynę na 1 sekundę
return "Dane załadowane"
}
Tutaj, delay jest funkcją suspend, która zawiesza wykonanie korutyny bez blokowania wątku i wznawia ją po 1 sekundzie.