कोटलिन corutines परिमित राज्य मशीन और कुछ कार्य धावक (उदाहरण के लिए, डिफ़ॉल्ट फोर्कजोइनपूल) के लिए चीनी है। https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md#implementation-detailsकौन सा कोरआउट (गोराउटिन और कोटलिन कोरआउट) तेजी से हैं?
दूसरे शब्दों में, जावा/कोटलिन रनटाइम में अभी तक कोई रनटाइम कोरआउट नहीं है (लेकिन यह http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html के साथ बदल सकता है)। कोटलिन कोरोटाइन केवल कार्यों का अनुक्रमिक है, जिसे एक-एक करके निष्पादित किया जाता है। प्रत्येक कार्य थ्रेड पूल से किसी भी धागे में निष्पादित किया जा सकता है।
गो रनटाइम "coroutines" का समर्थन करता है। लेकिन goroutines असली coroutines नहीं है। गोरोटाइन्स कार्यक्रम में उपज बिंदु सेट करने की अनुमति नहीं देता है। इसके अलावा, गो कस्टम थ्रेड पूल सेट करने की अनुमति नहीं देता है। आप डिफ़ॉल्ट पूल में केवल थ्रेड का आकार सेट कर सकते हैं।
कोटलिन कोरोटाइन और गोरोटाइन के बीच पहला अंतर गो रनटाइम प्रबंधन है जो इस समय कोरआउट चल रहा है। जब कुछ आईओ ऑपरेशन (या सिंक्रनाइज़ेशन प्राइमेटिव्स) पर गोरौटाइन अवरुद्ध हो जाते हैं, तो इसे निष्पादित करने के लिए अगली नौकरी को चुनें। जेवीएम में ऐसी शर्तों में कोई बौद्धिक नौकरी स्विचिंग नहीं है।
इस वजह से, गो वर्तमान में चल रहे नौकरी को सस्ते रूप से बदल सकते हैं। जाओ केवल कुछ रजिस्ट्रियों को बदलना है https://groups.google.com/forum/#!msg/golang-nuts/j51G7ieoKh4/wxNaKkFEfvcJ। लेकिन कुछ लोग कहते हैं, कि जेवीएम रजिस्टरों का उपयोग करने के बजाय धागे के ढेर का उपयोग कर सकता है। तो रजिस्टरों की कोई बचत और लोडिंग बिल्कुल नहीं है।
कोटलिन कोरोटाइन और गोरोटाइन के बीच दूसरा अंतर कोरआउटिन का प्रकार है। कोटलिन कोरआउट्स बेकार कोरआउटिन है। गोरौटाइन स्टैक्फुल कोरआउट हैं। कोटलिन कोरआउट के सभी राज्य कोटलिन संदर्भ में संग्रहीत किया जाता है, जो ढेर में संग्रहीत होता है। गोरोटाइन्स राज्य रजिस्टरों और थ्रेड स्टैक में संग्रहीत है।
मैं जानना चाहता हूं कि आईओ बाध्य कार्यों में कौन से कोरआउट (गोरौटाइन और कोटलिन कोरआउट) तेजी से हैं? सीपीयू बाध्य कार्य? स्मृति खपत के बारे में क्या?
"स्टैकफुल कोरआउटिन" और "स्टैकलेस कोरआउट" के बीच भेद बीमार परिभाषित और मूक है। विवरण के लिए मेरी जेवीएमएलएस टॉक देखें: https://www.youtube.com/watch?v=3xalVUY69Ok –