Avatar ·

Kotlin कोरूटीन में suspend-फ़ंक्शन का क्या मतलब है? शुरुआती लोगों के लिए व्याख्या

सभी को नमस्ते! मैंने Kotlin में कोरूटीन सीखना शुरू किया है और मुझे समझ नहीं आ रहा कि suspend-फ़ंक्शन क्या है। डॉक्यूमेंटेशन में लिखा है कि यह "एक रुकने योग्य फ़ंक्शन" है, लेकिन इससे मुझे कुछ समझ नहीं आता। मैंने एक सरल कोड लिखने की कोशिश की, लेकिन वह कंपाइल नहीं होता: ```kotlin fun main() { fetchUserData() // त्रुटि: Suspend function 'fetchUserData' को केवल कोरूटीन या किसी अन्य suspend फ़ंक्शन से ही कॉल किया जाना चाहिए } suspend fun fetchUserData(): String { delay(1000) // लंबी ऑपरेशन का अनुकरण return "User data" } ``` मैं इस फ़ंक्शन को main से सीधे क्यों नहीं कॉल कर सकता? "suspend" वास्तव में क्या है? यह अंदरूनी रूप से कैसे काम करता है? मैंने अन्य भाषाओं में async/await के बारे में पढ़ा है, लेकिन यहाँ सब कुछ अलग दिखता है। कृपया सरल शब्दों में उदाहरणों के साथ समझाएँ कि suspend-फ़ंक्शन क्या है और इसकी आवश्यकता क्यों है। विशेष रूप से मुझे इसमें दिलचस्पी है: 1. जब suspend-फ़ंक्शन कॉल किया जाता है तो थ्रेड का क्या होता है? 2. यह सामान्य फ़ंक्शन से कैसे अलग है? 3. इसे सामान्य फ़ंक्शन से क्यों नहीं कॉल किया जा सकता?