Назад к задачам
Junior — Senior
23

Определение параллельного и последовательного исполнения

Компании, где спрашивали:

Uzum
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Даны две функции, которые вызывают suspend‑функцию. Нужно выяснить, в какой из них вызовы происходят одновременно, а в какой – один за другим.

fun sum(): Int {
    val first = async { suspendFun() }.await()
    val second = async { suspendFun() }.await()
    return first + second
}

fun sum2(): Int {
    val first = async { suspendFun() }
    val second = async { suspendFun() }
    return first.await() + second.await()
}

fun suspendFun(): Int {
    longBackgroundWork()
}