runBlocking
코루틴을 만드는 코루틴 빌더로 코드 블록의 작업이 끌날때 까지 스레드를 점유하고 대기한다.
runBlocking
다음 라인의 코드를 실행하지 못하게 막는다.- 자식 스레드가 완료될 때 까지 현재 스레드를
block
하며 점유하게 되는 스레드는runBlocking
이 호출된 위치의 스레드이다. runBlocking<type: T>()
은 반환 받을 타입을 지정할 수 있으며 기본값은Unit
으로 생략이 가능하다.
import kotlinx.coroutines.*
fun main() {
blocking()
}
fun blocking() = runBlocking {
var job = launch {
delay(5000)
println("1")
}
println("2")
}
// 2
// 1