На мой взгляд, конечный автомат приводит к некоторым накладным расходам в коде и времени выполнения. Что, конечно, необходимо и на самом деле не является проблемой.
Однако в некотором существующем коде, который я изучаю, я обнаружил, что некоторая функция suspend вызывает другие функции, которые приостанавливают< /code>, как здесь:
Код: Выделить всё
Coroutine:
override suspend fun doWork() : { calls A::methodA }
class A { suspend fun methodA() : { calls B::methodB }
class B { suspend fun methodB() : { performs some network I/O }
Подробнее здесь: https://stackoverflow.com/questions/790 ... nce-killer