amanda.hinchman-dominguez
01/31/2025, 8:42 PMfun log(message: String) {
println("$message | current thread: ${Thread.currentThread().name}")
}
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
fun main() = runBlocking {
val job = launch {
log("job launched")
val task1 = launch {
log(" task1")
delay(1000)
log(" task1 complete ")
}
val task2: Deferred<String> = async {
log(" task2")
delay(1000)
//log(" task2 complete")
" task2 async"
}
task1.join() <---- forced join
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")
}