fun main() = runBlocking {
println("main starts")
joinAll(
async { coroutine(1, 500L) },
async { coroutine(2, 300L) }
)
println("main ends")
}
private suspend fun coroutine(number: Int, t: Long) {
println("Routine $number starts to work")
delay(t)
println("Routine $number finished")
}