본문 바로가기

Kotlin/안드로이드 공부

코루틴 플레이그라운드 - launch

728x90

import kotlinx.coroutines.*
import kotlin.system.*

fun main() {
    val time = measureTimeMillis {
        runBlocking{ // 동기 (람다 내의 모든 작업이 완료될 때까지 반환되지 않는다.)
            println("Weather forecast")
            launch{ // 작업의 성공 여부와 상관없이 제어 흐름이 반환되면 모든 작업 완료
                printForecast() 
            }
            launch{
                printTemperature()
            }
            println("Have a good day!")
        } 
    }
    println("${time/1000.0}")
}

suspend fun printForecast() { // 정지 함수는 모든 작업이 완료된 후에만 반환된다.
    delay(1000)// 코루틴이나 다른 정지 함수에서만 호출할 수 있다.
    println("Sunny")
}

suspend fun printTemperature() {
    delay(1000)
    println("30\u00b0C")
}