में निलंबन कार्य का मतलब क्या है, मैं कोटलिन कोरोटाइन पढ़ रहा हूं और जानता हूं कि यह suspend
फ़ंक्शन पर आधारित है। लेकिन suspend
का क्या अर्थ है?कोटलिन कोरोटाइन
कोरआउट या फ़ंक्शन निलंबित हो जाता है?
https://kotlinlang.org/docs/reference/coroutines.html
से मूल रूप से, coroutines संगणना कि एक धागा
मैंने सुना है लोग अक्सर कहते हैं कि "समारोह निलंबित" को रोके बिना निलंबित किया जा सकता है। लेकिन मुझे लगता है कि यह कोरआउट है जो निलंबित हो जाता है क्योंकि यह काम खत्म होने की प्रतीक्षा कर रहा है? "निलंबित" आमतौर पर "संघर्ष समाप्त" का अर्थ है, इस मामले में coroutine निष्क्रिय है।
क्या हमें कहना चाहिए कि कोरआउट को निलंबित कर दिया गया है?
कौन सा कोरआउटिन निलंबित हो जाता है?
https://kotlinlang.org/docs/reference/coroutines.html
से सादृश्य जारी रखने के लिए इंतजार है() एक निलंबित समारोह (इसलिए भी एक async {} ब्लॉक के भीतर से प्रतिदेय) है कि एक coroutine जब तक कुछ गणना किया जाता है को निलंबित कर देता है और उसके रिटर्न हो सकता है परिणाम:
async { // Here I call it the outer async coroutine
...
// Here I call computation the inner coroutine
val result = computation.await()
...
}
यह कहते हैं, "है कि एक coroutine निलंबित कर देता है जब तक कुछ गणना किया जाता है", लेकिन एक हल्के धागे की तरह coroutine है। तो अगर कोरआउट को निलंबित कर दिया गया है, तो गणना कैसे की जा सकती है?
हम await
देख computation
पर कहा जाता है, तो यह async
कि Deferred
देता है, यह एक और coroutine शुरू कर सकते हैं
fun computation(): Deferred<Boolean> {
return async {
true
}
}
बोली कहना कि एक coroutine निलंबित कर देता है जिसका मतलब है कि हो सकता है। क्या इसका मतलब है suspend
बाहरी async
कोरआउट, या suspend
आंतरिक computation
कोरआउट?
suspend
मतलब यह है कि जबकि बाहरी async
coroutine खत्म करने के लिए आंतरिक computation
coroutine के लिए (await
) इंतज़ार कर रहा है, यह (बाहरी async
coroutine) idles (इसलिए नाम को निलंबित) और थ्रेड पूल के लिए धागा देता है, और जब बच्चे computation
कोरआउट खत्म होता है, यह (बाहरी async
कोरआउट) उठता है, पूल से एक और धागा लेता है और जारी रहता है?
कारण मैं उल्लेख धागा है, क्योंकि https://kotlinlang.org/docs/tutorials/coroutines-basic-jvm.html
का धागा, जबकि coroutine इंतज़ार कर रहा है पूल में आ जाती है, और जब प्रतीक्षा किया जाता है, coroutine पूल में एक नि: शुल्क धागे पर शुरू
https://medium.com/@elye।परियोजना/समझ-निलंबित-समारोह के- coroutines-de26b070c5ed – Elye