Avatar ·

Kotlin Coroutines में runBlocking और coroutineScope के बीच क्या अंतर है?

नमस्ते साथियों! मैंने Kotlin में coroutines सीखना शुरू किया है और दो फंक्शन्स पर ध्यान गया जो मुझे बहुत समान लगते हैं: runBlocking और coroutineScope। मैंने documentation पढ़ी, लेकिन मेरे लिए उनका व्यवहार अभी भी स्पष्ट नहीं है।

यहाँ एक उदाहरण है जो मैंने लिखा:

fun main() = runBlocking {
    launch {
        delay(1000L)
        println("World!")
    }
    println("Hello,")
}

और दूसरा:

fun main() = runBlocking {
    coroutineScope {
        launch {
            delay(1000L)
            println("World!")
        }
        println("Hello,")
    }
}

दोनों उदाहरण पहले "Hello," और फिर एक सेकंड बाद "World!" प्रिंट करते हैं। लेकिन मुझे संदेह है कि इनमें अंतर है, और वह महत्वपूर्ण है। यह अंतर क्या है?