suspend функция — это функция, которую можно приостановить (suspend) и возобновить (resume) позднее. Они являются фундаментальной частью корутин (coroutines) в Kotlin и используются для выполнения асинхронных операций без блокировки потока.
Ключевые характеристики:
suspend функции или из контекста корутины. Компилятор обеспечивает это ограничение.suspend функция приостанавливает выполнение корутины, освобождая поток для других задач. Когда асинхронная операция завершена, корутина возобновляется с того места, где остановилась.launch и async из библиотеки kotlinx.coroutines позволяет писать асинхронный код в последовательном, легко читаемом стиле.suspend функции в конечные автоматы. Это позволяет сохранять состояние корутины между точками приостановки.Пример:
kotlin
Здесь fetchData — suspend функция, которая использует delay (еще одна suspend функция), чтобы имитировать задержку. delay является точкой приостановки. runBlocking создает область корутины для выполнения main как блокирующего потока, но внутри нее fetchData выполняется неблоки1рующим образом.