1. runBlocking
fun main() = runBlocking{
println("Test 1")
}
Test 1
public actual fun <T> runBlocking(
context: CoroutineContext,
block: suspend CoroutineScope.() -> T
): T
runBlocking
은 Corutine
을 생성하는 Corutine Builder
입니다.
runBlocking
은 단독으로 사용할 수 있는 Corutine Builder
입니다.
runBlocking
은 내부의 코드 블록이 모두 수행될 때까지 자원을 다른 Coroutine
에게 넘겨주지 않습니다.
2. launch
fun main() = runBlocking {
launch {
println("Test 2")
}
println("Test 1")
}
Test 1
Test 2
launch
는 Corutine
을 생성하는 Corutine Builder
입니다.
launch
은 단독으로 사용할 수 없는 Corutine Builder
입니다.
public fun CoroutineScope.launch(
context: CoroutineContext = EmptyCoroutineContext,
start: CoroutineStart = CoroutineStart.DEFAULT,
block: suspend CoroutineScope.() -> Unit
): Job
- 위의 코드를 보면 알 수 있듯이
CoroutineScope
에서만 사용 가능한 함수이며 Job
을 반환합니다.
launch
는 자원을 사용하고 있지 않으면 다른 코드 블록에게 자원을 넘기게 됩니다.