ما الفرق بين runBlocking و coroutineScope في Kotlin Coroutines؟
مرحبًا أيها الزملاء! بدأت تعلم coroutines في Kotlin ووجدت دالتين تبدوان متشابهتين جدًا بالنسبة لي: runBlocking و coroutineScope. قرأت الوثائق، لكن سلوكهما لا يزال غير واضح بالنسبة لي.
إليك مثال كتبته:
fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}
وآخر:
fun main() = runBlocking {
coroutineScope {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}
}
كلا المثالين يطبعان أولاً "Hello,"، وبعد ثانية "World!". لكني أشك في وجود فرق، وأنه مهم. ما هو هذا الفرق؟