kotlin coroutines
import kotlinx.coroutines.*
// Asynchronous execution
fun main() {
GlobalScope.launch { // creates a new coroutine and continues
doWorld() // suspending function
}
println("World !") // execution continues even while coroutine waits
runBlocking { // block main thread for 4 s (waits for 1rst coroutine)
delay(4000L)
}
}
suspend fun doWorld() {
delay(2000L) // non-blocking delay for 2000 milliseconds
println("Hello") // printed after "World !"
}