```fun main() = runBlocking { val job = launch...
# chicago
a
Copy code
fun main() = runBlocking {
    val job = launch {
        val task1 = launch {
            log("    task1")
            delay(1000)
            log("    task1 complete ")
        }
        val task2: Deferred<String> = async {
            log("    task2")
            delay(1000)
            log("    task2 complete")
            "    task2 returned"
        }

        val task3 = launch {
            log("    task3")
            delay(1000)
            log("    task3 complete")
        }
        log("    task2 status: $task2")
        log(task2.await())
        log("    task2 status: $task2")
    }
    log("Start job")
    job.join()
    log("Program ends")
}