💡Coroutines для асинхронных вычислений в Kotlin



Coroutines — программный модуль, организованный для обеспечения взаимодействия с другими модулями по принципу кооперативной многозадачности.

Mодуль приостанавливается в определённой точке, сохраняя полное состояние (включая стек вызовов и счётчик команд) и передаёт управление другому. Второй модуль, получив управление, выполняет свою задачу и передаёт управление обратно, сохраняя свои стек и счётчик.



В Kotlin для создания coroutine-функции используется ключевое слово suspend. Это позволяется обеспечить последовательность выполнения процедур. Таким образом следующая процедура будет дождаться выполнения текущей.



Подход языка программирования Kotlin к работе с асинхронным кодом заключается в использовании coroutines, что является идеей приостанавливаемых вычислений. Иначе говоря, идея заключается в приостановлении выполнения функции с возможностью дальнейшего возобновления её выполнения.



Пример:

suspend fun suspendedFoo() {

delay(1000L)

println("Hello, world!")

}