Avatar ·

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

नमस्ते साथियों! मैंने Kotlin में coroutines सीखना शुरू किया है और दो फंक्शन देखे जो मुझे बहुत समान लगते हैं: 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!" प्रिंट करते हैं। लेकिन मुझे संदेह है कि इनमें अंतर है, और वह महत्वपूर्ण है। यह अंतर क्या है?